ssd_mobilenet移植到Movidius到目前为止我还没移植成功,这里记录一下遇到的一些问题,以及后续的研究方向。
首先,我们在 detection_models_zoo中把ssdlite_mobilenet_v2_coco算法模型下载下来,下载后的tar包中有如下__图二__中的几个文件:
checkpoint:这个文件是检查点文件,该文件是在网络训练过程中通过tf.train.Saver保存的当前批次训练结束后的检查点文件。
frozen_inference_graph.pb:这个文件是生成的一个可以用来导入到tflite中的计算图,我们在tensorflow中调用该模型进行目标检测时正是通过解析该文件来获取计算图和参数集。
model.ckpt.*:这三个文件和前面的__checkpoint__文件是对应出现的,model.ckpt.data*是所有weights和bias的值,model.ckpt.meta是计算图,model.ckpt.index是索引文件。
pipeline.config:是保存一些模型入参的配置文件,是用来我们训练自己的模型时进行调参用。
所以按照ncsdk/docs/tf_compile_guidance.html描述,再结合上面这几个文件作用的分析,我使用的编译命令如下:
mvNCCompile frozen_inference_graph.pb -s 12 -in input -on output -o ssd_mobilenet.graph
mvNCCompile:Ncsdk的编译工具,用来生成计算图。
-s: 使用SHAVE的个数。
-in: 网络模型中输入层node的名字。
-on: 网络模型中输出层node的名字。
-o: 编译后生成的文件名。
运行之后,问题来了:
问题一:input node找不到
$ mvNCCompile frozen_inference_graph.pb -s 12 -in input -on output -o ssd_mobilenet.graph
mvNCCompile v02.00, Copyright @ Intel Corporation 2017
/usr/local/lib/python3.5/dist-packages/tensorflow/python/util/tf_inspect.py:45: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() instead
Traceback (most recent call last):
File "/usr/local/bin/mvNCCompile", line 169, in <module>
create_graph(