Python 合并层的Keras错误

Python 合并层的Keras错误,python,neural-network,theano,keras,Python,Neural Network,Theano,Keras,我正试图建立一个模型,以彩色图像。我正在使用实验室颜色空间。模型的输入是L通道,模型将被训练以预测A和B通道。我想通过一些卷积来运行L通道,然后将其拆分为另外两个模型,分别计算a和B通道。最后,我想将它们合并在一起以获得输出 model = Sequential() model.add(InputLayer((1, H, W))) model.add(Convolution2D(64, 5, 5, border_mode = 'same', activation = 'relu')) mode

我正试图建立一个模型,以彩色图像。我正在使用实验室颜色空间。模型的输入是L通道,模型将被训练以预测A和B通道。我想通过一些卷积来运行L通道,然后将其拆分为另外两个模型,分别计算a和B通道。最后,我想将它们合并在一起以获得输出

model = Sequential()
model.add(InputLayer((1, H, W)))

model.add(Convolution2D(64, 5, 5, border_mode = 'same', activation = 'relu'))
model.add(Convolution2D(64, 5, 5, border_mode = 'same', activation = 'relu'))
last = Convolution2D(64, 5, 5, border_mode = 'same', activation = 'relu')
model.add(last)

a_model = Sequential()
a_model.add(last)
a_model.add(Convolution2D(64, 5, 5, border_mode = 'same', activation = 'relu'))
a_model.add(Convolution2D(64, 5, 5, border_mode = 'same', activation = 'relu'))
a_model.add(Convolution2D(1, 3, 3, border_mode = 'same', activation = 'sigmoid'))

b_model = Sequential()
b_model.add(last)
b_model.add(Convolution2D(64, 5, 5, border_mode = 'same', activation = 'relu'))
b_model.add(Convolution2D(64, 5, 5, border_mode = 'same', activation = 'relu'))
b_model.add(Convolution2D(1, 3, 3, border_mode = 'same', activation = 'sigmoid'))

model.add(Merge((a_model, b_model), mode = 'concat'))
当我尝试创建合并层时,出现以下错误

Using Theano backend.
Using gpu device 0: GeForce GTX TITAN (CNMeM is disabled, cuDNN 5004)
Traceback (most recent call last):
  File "/home/chase/workspace/Colorizer/colorizer2.py", line 79, in <module>
    model.add(Merge((a_model, b_model), mode = 'concat'))
  File "/usr/local/lib/python3.5/dist-packages/keras/engine/topology.py", line 1118, in __init__
    self.add_inbound_node(layers, node_indices, tensor_indices)
  File "/usr/local/lib/python3.5/dist-packages/keras/engine/topology.py", line 524, in add_inbound_node
    assert len(node_indices) == len(inbound_layers)
AssertionError
使用无后端。
使用gpu设备0:GeForce GTX TITAN(禁用CNMeM,cuDNN 5004)
回溯(最近一次呼叫最后一次):
文件“/home/chase/workspace/Colorizer/colorizer2.py”,第79行,在
添加(合并((a_模型,b_模型),模式='concat'))
文件“/usr/local/lib/python3.5/dist-packages/keras/engine/topology.py”,第1118行,在__
添加入站节点(层、节点索引、张量索引)
文件“/usr/local/lib/python3.5/dist-packages/keras/engine/topology.py”,第524行,在add\u-inbound\u节点中
断言len(节点索引)=len(入站层)
断言错误

我希望模型的输出为(2,H,W),其中H和W是图像的高度和宽度。

连续的模型不允许您在网络中创建分叉。改用功能API(Keras 1.0中新增的)。您可以跟随。

您可以合并,但不能分叉。