freeze_graphコマンドにて、モデルの変数を定数に変えたら、モデルを graph_transforms コマンドにて、最適化します。
引用 bazel build tensorflow/tools/graph_transforms:transform_graph bazel-bin/tensorflow/tools/graph_transforms/transform_graph \ --in_graph=tensorflow_inception_graph.pb \ --out_graph=optimized_inception_graph.pb \ --inputs='Mul:0' \ --outputs='softmax:0' \ --transforms=' strip_unused_nodes(type=float, shape="1,299,299,3") remove_nodes(op=Identity, op=CheckNumerics) fold_old_batch_norms '
いつものように、bazelコマンドでビルドしましょうね。
transform_graph コマンドの各パラメータ
--in_graphパラメータは、入力モデルファイル (.pb) --out_graphパラメータは、出力モデルファイル (.pb) --inputsパラメータは、入力ノード(''で囲むので複数あってもいい) --outputsパラメータは、出力ノード(''で囲むので複数あってもいい) --transformsパラメータは、""でいろいろな変換を順番にしていできます。指定した順番に実行されます。
上の例では、
入力モデルは、tensorflow_inception_graph.pb 出力モデルは、optimized_inception_graph.pb 入力ノードは、Mul:0 出力ノードは、softmax:0 変換は、 strip_unused_nodes(type=float, shape="1,299,299,3") remove_nodes(op=Identity, op=CheckNumerics) fold_old_batch_norms を順番に実行
Transform Referenceがあるので、ここにあるものが指定できます。