2017-07-06 21 views
-2

こんにちは、私はKerasの新しい人です。私はこのペーパーを実装するためにケラを選択します:http://mmlab.ie.cuhk.edu.hk/projects/TCDCN.html。私は入力サイズを48x48に変更するだけで出力は68点のランドマークが必要です。ここに私のネットワークがある:Kerasを使用してCNNモデルを構築する

def mtfl40New(size): 
    model = Sequential() 
    model.add(Conv2D(16, (5, 5), padding='valid', input_shape=(3, size, size))) 
    model.add(Activation('tanh')) 
    model.add(MaxPooling2D(pool_size=(2, 2))) 

    model.add(Conv2D(48, (3, 3), padding='valid')) 
    model.add(Activation('tanh')) 
    model.add(MaxPooling2D(pool_size=(2, 2))) 

    model.add(Conv2D(64, (3, 3), padding='valid')) 
    model.add(Activation('tanh')) 
    model.add(MaxPooling2D(pool_size=(2, 2))) 

    model.add(Conv2D(64, (2, 2), padding='valid')) 
    model.add(Activation('tanh')) 

    model.add(Flatten()) 
    model.summary() 
    #model.count_params() 
    model.add(Dense(100, kernel_initializer="normal", input_shape=(576,))) 
    model.add(Activation('tanh')) 
    model.add(Dense(136, kernel_initializer="normal")) 
    model.add(Activation('tanh')) 

    model.compile(loss='mean_squared_error', optimizer='adam', metrics=['accuracy']) 
    return model 

しかし、私はこのエラーを取得する: enter image description here 誰でも助けることができますか? -Thank you-

答えて

2

これは、入力の形と解釈方法の形式が異なるためです。 Kerasの設定では、チャンネルへの画像の順序付けが最初に行われ、入力シェイプの最後にはチャンネルが設定されています。で

model.add(Conv2D(16, (5, 5), padding='valid', input_shape=(3, size, size))) 

:単純にこの行を置き換え、それを修正するには

model.add(Conv2D(16, (5, 5), padding='valid', input_shape=(size, size, 3))) 
+0

こんにちはソリューションをありがとうございました。しかし、私はまだそれに問題があります。 "ValueError:モデル入力をチェックしているときにエラーが発生しました:conv2d_1_inputが形状(なし、48,48,3)を持っていますが、形状(2912L、3L、48L、48L)の配列を持っています" どうすれば修正できますか? -Thank you- – herleeyandi

+0

@herleeyandiそれは別の問題です。完全な情報で別の質問をする必要があります。 –

関連する問題