TOP > カテゴリ > Python・人工知能・機械学習 >

Bazelのインストールとsummarize_graph/freeze_graphのビルド

Python/TensorFlowの使い方(目次)

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で確認可能です。

※詳細は公式参照





関連記事



公開日:2018年07月31日 最終更新日:2018年08月24日
記事NO:02708