合并具有张量流后端的层keras

时间:2017-03-16 03:48:55

标签: tensorflow deep-learning keras conv-neural-network keras-layer

我想使用Merge图层将两个连续模型合并为一个,但它显示错误。我正在使用尺寸为128x128(RGB图像)且批量大小为32的图像。

错误是:ValueError:模型需要3个输入数组,但只接收一个数组。找到:具有形状的阵列(32,3,128,128)

模型是:

model = Sequential() leftBranch = Sequential() 

leftBranch.add(Reshape((3,128,128), input_shape=(3, img_width, img_height))) 
leftBranch.add(Convolution2D(14, 3, 1, activation='relu')) 
leftBranch.add(ZeroPadding2D((1, 1))) 
leftBranch.add(Flatten()) 

rightBranch = Sequential() 
rightBranch.add(Reshape((3,128,128), input_shape=(3, img_width, img_height))) 
rightBranch.add(Convolution2D(14, 1, 3, activation='relu')) 
rightBranch.add(MaxPooling2D((2, 2), strides=(2, 2))) 
rightBranch.add(Flatten()) 

centralBranch = Sequential() 
centralBranch.add(Reshape((3,128,128), input_shape=(3, img_width, img_height))) 
centralBranch.add(Convolution2D(14, 5, 5, activation='relu'))
centralBranch.add(MaxPooling2D((2, 2), strides=(2, 2)))
centralBranch.add(Flatten()) 
merged = Merge([leftBranch, centralBranch, rightBranch], mode='concat') 

model = Sequential() 
model.add(merged) model.add(Dense(64)) 
model.add(Activation('relu')) model.add(Dropout(0.5)) model.add(Dense(1)) 
model.add(Activation('sigmoid'))

出现错误:ValueError:模型需要3个输入数组,但只接收一个数组。找到:具有形状的阵列(32,3,128,128)

所以,什么是将两个顺序模型与卷积层连接起来的正确方法。我只是想合并卷积层输出,就像我在这里做的那样。

0 个答案:

没有答案