前提・実現したいこと
KerasのFunctional APIを用いて、5層のDeep Autoencoderを作りたいと考えています。
現状、3層のAutoencoderは作成できており、エンコード層とデコード層の間にもう一層加えることを想定しています。
発生している問題・エラーメッセージ
以下のソースコードを使って3層を作成した後に5層にしようと考えているのですが、どのように変更すれば作成することが出来るか教えていただけると助かります。
ValueError: Input 0 of layer dense is incompatible with the layer: expected axis -1 of input shape to have value 212 but received input with shape [None, 90]
該当のソースコード
python3
1dim = 212 2hidden1 = 90 3hidden2 = 70 4epoch = 500 5 6# Define Models 7input_1 = Input(shape=(dim, )) 8# 3 Layer 9encoded_1 = Dense(hidden1, activation="sigmoid")(input_1) 10decoded_1 = Dense(dimensions, activation="sigmoid")(encoded_1) 11Autoencoder_3L = Model(inputs=input_1, outputs=decoded_1) 12 13# 5 Layer 14encoded_2 = Dense(hidden2, activation="sigmoid")(encoded_1) 15decoded_2 = Dense(hidden1, activation="sigmoid")(encoded_2) 16decoded_3 = Autoencoder_3L.layers[1] 17Autoencoder_5L = Model(inputs=input_1, outputs=decoded_3(decoded_2)) 18 19## Compile 20Autoencoder_3L.compile(optimizer="sgd", loss="mean_squared_error", metrics=[CO]) 21Autoencoder_5L.compile(optimizer="sgd", loss="mean_squared_error", metrics=[CO]) 22 23## Summary 24Autoencoder_3L.summary() 25Autoencoder_5L.summary() 26 27## Training 28stack1 = Autoencoder_3L.fit(x_train, x_train, epochs=epoch, verbose=2, batch_size=1) 29stack2 = Autoencoder_5L.fit(x_train, x_train, epochs=epoch, verbose=2, batch_size=1) 30
補足情報
KerasもFunctional APIも初心者なのでなるべくわかりやすく回答いただけると助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/02 05:19