Tensorflowのバージョン違い

Object Detectionの強化学習を実施していてハマったこと。

Tensorflow v1.13にて学習した結果をv1.13にてfrozenモデルとしてpbファイルに出力した結果をGraphpipeに食わせてみると、、、

INFO[0000] Starting graphpipe-tf version 1.0.0.10.f235920 (built from sha f235920)
ERRO[0000] Could not import graph: NodeDef mentions attr ‘Truncate’ not in Op<name=Cast; signature=x:SrcT -> y:DstT; attr=SrcT:type; attr=DstT:type>; NodeDef: Postprocessor/ToFloat_2 = Cast[DstT=DT_FLOAT, SrcT=DT_INT32, Truncate=false](Postprocessor/ToFloat_2/x). (Check whether your GraphDef-interpreting binary is up to date with your GraphDef-generating binary.).
ERRO[0000] Failed to load ‘/models/frozen_inference_graph.pb’: NodeDef mentions attr ‘Truncate’ not in Op<name=Cast; signature=x:SrcT -> y:DstT; attr=SrcT:type; attr=DstT:type>; NodeDef: Postprocessor/ToFloat_2 = Cast[DstT=DT_FLOAT, SrcT=DT_INT32, Truncate=false](Postprocessor/ToFloat_2/x). (Check whether your GraphDef-interpreting binary is up to date with your GraphDef-generating binary.).
ERRO[0000] Failed to serve: NodeDef mentions attr ‘Truncate’ not in Op<name=Cast; signature=x:SrcT -> y:DstT; attr=SrcT:type; attr=DstT:type>; NodeDef: Postprocessor/ToFloat_2 = Cast[DstT=DT_FLOAT, SrcT=DT_INT32, Truncate=false](Postprocessor/ToFloat_2/x). (Check whether your GraphDef-interpreting binary is up to date with your GraphDef-generating binary.).

GraphPipeのDocker Image 「sleepsonthefloor/graphpipe-tf:cpu」内のTensorflowのバージョンはどうやらv1.8のようで、バージョン違いで動かない。

そこで、Tensorflow v1.13にて学習した結果をv1.8にてfrozenモデルとしてpbファイルに出力した結果をGraphpipeに食わせてみると、、、

INFO[0000] Starting graphpipe-tf version 1.0.0.10.f235920 (built from sha f235920)
ERRO[0000] Could not import graph: Op type not registered ‘NonMaxSuppressionV3’ in binary running on c67edd1cb658. Make sure the Op and Kernel are registered in the binary running in this process.
ERRO[0000] Failed to load ‘/models/frozen_model_for_gp.pb’: Op type not registered ‘NonMaxSuppressionV3’ in binary running on c67edd1cb658. Make sure the Op and Kernel are registered in the binary running in this process.
ERRO[0000] Failed to serve: Op type not registered ‘NonMaxSuppressionV3’ in binary running on c67edd1cb658. Make sure the Op and Kernel are registered in the binary running in this process.

今度はObject Detectionの強化学習の際にNonMaxSuppressionV3を使っているのだが、これがv1.8には無いという。

おっと、これは詰んだかと思いましたが、v1.11にてBuildされたGraphPipeのDocker Imageがありました。

※自分で最新のv1.13でBuildし直そうかと頑張ってみましたが、うまくいかず、いったん諦めました。

最終的に、Tensorflow v1.13にて学習した結果をv1.11にてfrozenモデルとしてpbファイルに出力した結果をGraphpipe(v1.11版)に食わせてようやく動くようなりました。

シェアする

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

フォローする