今回の記事はTensorFlowモデルをエッジデバイス用の軽量モデルであるTensrFlow Lite変換する為のtflite_convertメソッドの使用方法とオプションが何を示しているかわかった範囲で記載します。
この変換をミスると変換してもうまく機能せずにエラーを履き続けるので変換はかなり重要な工程です。
モデルの大きさもかなり小さくできるので容量や速度の面から考えてもかなり重要です。
tflite_convert --output=[出力先path] --graph_def_file=[tflite_graph.pbグラフpath] --input_arrays=normalized_input_iamge_tensor --output_arrays=TFLite_Detection_PostProcess,TFLite_Detection_PostProcess:1,TFLite_Detection_PostProcess:2,TFLite_Detection_PostProcess:3 --input_shapes=1,300,300,3 --allow_custom_ops
–output=[出力先path]
–graph_def_file=[tflite_graph.pbグラフpath]
–input_arrays=normalized_input_iamge_tensor
–output_arrays=[モデルの出力によって変化]
–input_shapes=[学習時のモデルの入力サイズの指定]
–allow_custom_ops
–graph_def_file
はTensorFlowモデルを読み込みます。Kerasモデルの変換時はここが変化します。
–output_arraysは体感ですが転移学習をさせた際(MobileNet)では使用しなくてはうまく出力がなされていない様で、Kerasモデルからの変換の場合は特にオプションをつけなくともOKでした。
コメント
[…] […]