keras:连接两个图像作为输入(DeepVO)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keras:连接两个图像作为输入(DeepVO)相关的知识,希望对你有一定的参考价值。

我正在尝试实现this paper中描述的模型。 我遇到问题的一个项目是设置输入,这应该是两个图像堆叠,这意味着,我有一组连续的(i & i+1)图像2048x2048x1(单色),所以输入张量将是2048x2048x2,但每个连续输入到神经网络将是以下一组图像(i+1 & i+2)。到目前为止我有

import numpy as np
from keras.models import Sequential
from keras.layers import Dense, Concatenate, Activation, Conv2D, MaxPooling2D, Flatten, Input
from keras.klayers import Embedding,LSTM 

inp1 = Input((2048,2048,1))
inp2 = Input((2048,2048,1))
deepVO = Sequential()
deepVO.add(Concatenate(inp1,inp2,-1))
deepVO.add(Conv2D(64,(2,2)))
deepVO.add(Activation('relu'))
#....continue to add other layers

我在deepVO_CNN.add(Concatenate(inp1,inp2,-1))得到的错误是:

TypeError:__ init __()取1到2个位置参数,但给出4个。

答案

尝试像这样的keras api模式:

import numpy as np
from keras.models import Sequential
from keras.layers import Dense, Activation, Conv2D, MaxPooling2D, Flatten, Input, concatenate

from keras.models import Model

inp1 = Input((2048,2048,1))
inp2 = Input((2048,2048,1))

deepVO = concatenate([inp1, inp2],axis=-1)
deepVO = Conv2D(64,(2,2))(deepVO)
deepVO = Activation('relu')(deepVO)
...

...
outputs = Dense(num_classes, activation='softmax')(deepVO)
deepVO = Model([inp1, inp2], outputs)
#deepVO.summary()

以上是关于keras:连接两个图像作为输入(DeepVO)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 keras 中提供可变大小的图像作为输入

如何在keras tensorflow中将图像作为输入并获取另一个图像作为输出

tf.keras.Concatenate Graph 连接两个输入层时断开连接

单程将两个图像作为输入,将两个图像作为输出?

如何组合两个 keras 生成器功能

当我在 Tensorflow 上使用 Keras API 连接两个模型时,模型的输入张量必须来自 `tf.layers.Input`