先日のひらがな画像認識を拡張し、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プログラムを使うことでうまくいきました。
参考まで。