一、下载并安装
下载地址:https://github.com/bazelbuild/bazel/releases
官网安转教程:https://docs.bazel.build/versions/master/install-ubuntu.html
安装比较简单,可以参考官方教程进行。
安装成功的测试:在终端输入bazel,如果没有报“未找到命令”,说明已经安装成功。
二、bazel常用工具的编译和使用
要使用tensorflow源码中的工具,必选先用bazel进行编译,编译后,就可以直接使用,以后都不用在编译了,有些工具编译时间会很长,取决与你的电脑配置以及你编译的是那个工具。
2.1固化模型的工具
a)编译
在源码路径下执行下面的命令,请注意路径的问题:
如果报错“ERROR: The 'build' command is only supported from within a workspace.
WARNING: --batch mode is deprecated. Please instead explicitly shut down your Bazel server using the command "bazel shutdown".”,则说明你执行命令的路径有问题。后面的同理。
bazel build tensorflow/python/tools:freeze_graph
b)使用方法
在编译好的tensorflow源码目录下的bazel-bin中进行,首先要确认bazel-bin文件夹存在。
bazel-bin/tensorflow/python/tools/freeze_graph \
--input_graph=/tmp/inception_v3_inf_graph.pb \
--input_checkpoint=/tmp/checkpoints/inception_v3.ckpt \
--input_binary=true --output_graph=/tmp/frozen_inception_v3.pb \
--output_node_names=InceptionV3/Predictions/Reshape_1
2.2summarize_graph工具(查看网络节点内容)
a)编译
bazel build tensorflow/tools/graph_transforms:summarize_graph
b)使用方法
在编译好的tensorflow源码目录下的bazel-bin中进行,首先要确认bazel-bin文件夹存在。
bazel-bin/tensorflow/tools/graph_transforms/summarize_graph \
--in_graph=/tmp/inception_v3.pb
2.3label_image(用训练好的模型给测试图片打标签)
a)编译
bazel build tensorflow/examples/label_image:label_image
b)使用方法
在编译好的tensorflow源码目录下的bazel-bin中进行,首先要确认bazel-bin文件夹存在。
bazel-bin/tensorflow/examples/label_image/label_image \
--image=/home/yuping-chen/slim/my_data/fruits/fruit_photos/火龙果/3.jpeg \
--input_layer=input \
--output_layer=InceptionV3/Predictions/Reshape_1 \
--graph=/home/yuping-chen/slim/my_model/frozen_model/inception_v3.pb \
--labels=/home/yuping-chen/slim/my_data/fruits/fruit_photos/labels.txt \
--input_mean=0 \
--input_std=299
2.4pb转成tflite文件
a)编译
bazel build tensorflow/contrib/lite/toco:toco
b)使用方法
在编译好的tensorflow源码目录下的bazel-bin中进行,首先要确认bazel-bin文件夹存在。
/home/yuping-chen/bazel/tensorflow/bazel-bin/tensorflow/contrib/lite/toco/toco \
--input_file=/home/yuping-chen/slim/my_model/frozen_model/inception_v3.pb \
--input_format=TENSORFLOW_GRAPHDEF \
--output_format=TFLITE \
--output_file=/home/yuping-chen/slim/my_model/frozen_model/inception_v3.tflite \
--inference_type=FLOAT \
--input_type=FLOAT \
--input_arrays=input \
--output_arrays=InceptionV3/Predictions/Reshape_1 \
--input_shapes=1,299,299,3
其他工具也可以类似方法进行编译。