2016-05-28 4 views
2

イメージをカラー化するモデルを作成しようとしています。私はLAB色空間を使用しています。モデルへの入力はLチャンネルであり、モデルはAチャンネルとBチャンネルを予測するように訓練される。私はいくつかの畳み込みを介してLチャネルを実行し、それをAチャネルとBチャネルを独立して計算する2つの他のモデルに分割したいと考えています。最後に、出力を得るためにそれらを再び結合したいと思います。マージレイヤーのケラスエラー

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 

モデルのoututを(2、H、W)とすると、HとWは画像の高さと幅です。

答えて

2

Sequentialモデルでは、ネットワーク内のフォークを作成できません。代わりに機能的なAPI(Keras 1.0の新機能)を使用してください。 this tutorialに従うことができます。

+0

いいですよ。私はなぜドキュメンテーションの連続したレイヤーでそれを表示するのかわかりません。 http://keras.io/layers/core/#merge – chasep255

+0

あなたはマージすることができます。 –

関連する問題