2017-12-13 3 views
1

私は、Jupiter NotebookのKeras/TensorflowでInception V3モデルの最上位レイヤを取得しようとしています。Pythonで間違ったバージョンの関数が呼び出されました

Inception V3モデルとその重みを正しく取得できました。 次のコードスニペットを使用してFully Connectedレイヤ(最上位レイヤ)を取得しようとしています。

base_model = InceptionV3(weights=weights) 
base_model.get_layer('flatten') 

しかし、機能は が言って失敗した私は、スタックトレースを見ると

「:いいえ、そのような層とValueErrorがフラット化」、topology.pyからget_layer()関数があると呼ばなっています'ケラス/エンジン'

この関数ではなく、のケラースのmodels.pyのget_layer()関数が呼び出されているはずです。

何が問題になる可能性がありますか? Pythonに正しいバージョンを強制的に呼び出させるにはどうすればよいですか?あるいは、InceptionV3モデルからウェイトを得る他の方法はありますか?


ちょうどbase_model.layersリストの内容を列挙しようとした層の名前が異なっており、名前のを平らに何層が検出されないことがわかりました。 私はflattenを最後のFCレイヤー 'mixed10'に置き換えてコードを実行しました。

これは正しいことですか?または私は何か不適切なことをしていますか?

答えて

0

これらの層の名前が変わっていることが判明しました。だから最善の方法は、Model.layers[].nameまたはModel.summary()を使用してすべてのレイヤー名を列挙し、出力にリストされている名前を使用することです。

0

InceptionV3モデルは決して'flatten'

トップを取得するために、完全に接続されている層は、あなただけの

base_model = InceptionV3(weights=weights, include_top=False) 
+0

感謝を使用することができますがありません!しかし、この場合、 'include_top = True'を正しく設定する必要がありますか? – PallaviJog

関連する問題