Batch Normalizationを用いたモデル(.pb)の出力

先日のひらがな画像認識を拡張し、ETL8Gの956文字を画像認識させようと思ったのですが、
そのままのCNNではaccuracyが上がらず、Batch Normalizationを使う必要がありました。

学習の実装そのものは、適切な場所に層を追加するだけなので、難しいことは無いのですが、
pbファイルへの出力でハマりました。

正確にいうと、出力はできるものの、読み込む際に以下のようなエラーとなります。

※GraphPipeでの起動時のエラー。tf.import_graph_def()で読む場合でも内容は同じ。

ERRO[0000] Could not import graph: Input 0 of node batch_normalization_v1_1/cond/FusedBatchNorm_1/ReadVariableOp_1/Switch was passed float from batch_normalization_v1_1/moving_variance:0 incompatible with expected resource.
ERRO[0000] Failed to load ‘/models/japanese.pb’: Input 0 of node batch_normalization_v1_1/cond/FusedBatchNorm_1/ReadVariableOp_1/Switch was passed float from batch_normalization_v1_1/moving_variance:0 incompatible with expected resource.
ERRO[0000] Failed to serve: Input 0 of node batch_normalization_v1_1/cond/FusedBatchNorm_1/ReadVariableOp_1/Switch was passed float from batch_normalization_v1_1/moving_variance:0 incompatible with expected resource.

いろいろ試しましたが結果として下記記事にあるmodifyプログラムを使うことでうまくいきました。

convert_variables_to_constants raise issue of while/ReadVariableOp/Enter while dealing with LSTM and GRU

参考まで。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする