1. ホーム
  2. ディープラーニング

TypeErrorです。メッセージDescriptorを期待したが、Descriptorを得た

2022-03-15 07:27:32
<パス

tensorflow(1.12.0),keras(2.2.4) でモデルの学習を行うと、以下のエラーが発生します。

TypeError: Expected a message Descriptor, got Descriptor


問題は解決しました。



一部の情報では、tensorflowとprotobufのバージョンの不一致が原因であると言われています。tensorflowとprotobufのバージョンの対応は以下の通りです。



tensorflow 1.5 --------------- protobuf 3.4



tensorflow 1.12 --------------- protobuf 3.6



tensorflow 1.10 --------------- protobuf 3.6



tensorflow 1.0.0 --------------- protobuf 3.1



tensorflowのバージョンが1.12.0なので、protobufを3.6.0に変更しましたが、まだエラーが報告されます。



protobufとtensorflowをアンインストールし、tensorflowを再ダウンロードすると、tensorflowをダウンロードする際に自動的にprotobufの依存関係が追加されます。 問題解決

参考ブログ



https://blog.csdn.net/qq_40577941/article/details/105643225

https://www.cnblogs.com/walnuttree/p/11661190.html

https://www.freesion.com/article/78891062383/

https://stackoverflow.com/questions/66507238/typeerror-expected-a-message-descriptor-got-descriptor-when-trying-to-import