Bazelのインストールとsummarize_graph/freeze_graphのビルド
TensorFlow.jsコンバータで使用する「summarize_graph」(グラフの入出力ノードの検査)、「freeze_graph」(Frozen Model形式の出力)をBazelでビルドします。
summarize_graph及びfreeze_graphはTensorFlowのソースコードに含まれています。
はじめに
今回のBazelのインストール、ビルド作業は「TensorFlow.jsコンバータ」に関連しているので前回のtensorjsコンテナ上で行うことを推奨します。
1. Bazelのインストール
Bazelをインストールします。※詳細は公式参照
apt install -y wget apt-get install pkg-config zip g++ zlib1g-dev unzip wget https://github.com/bazelbuild/bazel/releases/download/0.15.2/bazel-0.15.2-installer-linux-x86_64.sh bash bazel-0.15.2-installer-linux-x86_64.sh source ~/.bashrc
※Pythonはインストール済みなので省いています。
2. TensorFlowのソースコードのダウンロード
GitHubからソースをダウンロードします。
apt install git git clone https://github.com/tensorflow/tensorflow.git
[コマンド例]
root@xxx:~# git clone https://github.com/tensorflow/tensorflow.git
※今回はコンテナ上なので/rootに保存します。
3. summarize_graphのビルド
カレントディレクトリを移動する
cd tensorflow
[コマンド例]
root@xxx:~# cd tensorflow
ビルドの実行
bazel build tensorflow/tools/graph_transforms:summarize_graph
「/foo/graph.pb」のグラフを検査する場合は次のようにします。
bazel-bin/tensorflow/tools/graph_transforms/summarize_graph --in_graph=/foo/graph.pb
Possible inputが入力ノード名、Variablesが変数名、Possible Outputsが出力ノード名となります。ただし、あくまでも検査(予測)なので、表示されないノード名などがある場合があります。TensorBoardのグラフと併せて使用するのが良いです。
※詳細は公式参照
4. freeze_graphのビルド
カレントディレクトリを移動する
cd tensorflow
[コマンド例]
root@xxx:~# cd tensorflow
ビルドの実行
bazel build tensorflow/python/tools:freeze_graph
PBファイル(/foo/graph.pb)、チェックポイントファイル(/foo/ckpt)で出力ノード名(Z/Add)から「Frozen Model形式」のモデルを作成するには次のようにします。
bazel-bin/tensorflow/python/tools/freeze_graph \ --input_graph=/foo/graph.pb \ --input_checkpoint=/foo/ckpt \ --output_graph=/foo/frozen_graph.pb \ --output_node_names=Z/Add
出力ノード名はsummarize_graphまたはTensorBoardで確認可能です。
※詳細は公式参照
関連記事
前の記事: | TensorFlow.jsコンバータ(tensorflowjs)のインストール [Docker/nvidia-docker2] |
次の記事: | TensorFlow.jsのHello World [WebでAIモデルを実行する] |