Intel's Deep Learning Inference Engine Developer Guideにて、freeze_graphコマンド、summarized_graphコマンドが使われています。
引用 $ python3 modeloptimizer/scripts/model_optimizer.py \ --input_model=/tmp/frozen_inception_v1.pb \ --input=input \ --output=InceptionV1/Logits/Predictions/Reshape_1 \ --data_type=float \ --input_shape 1,224,224,3 \ --model_name InceptionV1
色々やった後のモデル (frozen_inception_v1.pb)で、
入力ノードはinput、出力ノードは、InceptionV1/Logits/Predictions/Reshape_1、
データタイプは、floatで、入力データは、(1,224,224,3)、モデルの名前を、InceptionV1 に。
入力ノードはinput、出力ノードは、InceptionV1/Logits/Predictions/Reshape_1、
データタイプは、floatで、入力データは、(1,224,224,3)、モデルの名前を、InceptionV1 に。
また、--transformsパラメータで 変換 を指定することができるようです。
TensorFlowのtransform_graphコマンドと同じようなもんですね。
TensorFlowのtransform_graphコマンドと同じようなもんですね。
--transformsパラメータを指定しないと、デフォルトして下記を指定したことになっているようです。
引用 ・strip_unused_nodes(type=<data_type>;shape=<input_shape>) ・remove_nodes(op=Identity) ・remove_nodes(op=CheckNumerics) ・fold_constants(ignore_errors=true) ・fold_batch_norms ・strip_unused_nodes(type=<data_type>; shape=<input_shape>) ・remove_nodes(op=Identity) ・remove_nodes(op=CheckNumerics) ・fold_constants(ignore_errors=true) ・fold_batch_norms ・strip_unused_nodes(type=<data_type>; shape=<input_shape>) ・remove_nodes(op=Identity) ・remove_nodes(op=CheckNumerics) ・fold_constants(ignore_errors=true) ・fold_batch_norms ・calc_shapes(input_types=<data_type>; input_shapes=<input_shape>) ・create_ir(model_name=<model_name>; output_dir=<output_dir>; scale=<scale>)
なんか、TensorFlowのtransform_graphコマンドと同じ変換を使っているようですね。
Model Optimizer用の変換は、次の2つだけのようです。
・calc_shapes ・create_ir
デフォルトでの変換の最後の2つですね。