WIN10或者Ubuntu 16.04,我们用的是在固态硬盘上搭建的Ubuntu 16.04,可使用工具rufus进行启动盘制作,然后进入U盘启动盘安装UBUNTU系统。
注意:1、Ubuntu 16.04需要到官网上下载Ubuntu 16.04 LTS的正式版本(我们下的是16.04.05),其他渠道的版本安装包可能会有残缺,在配置计算棒环境时容易出现问题。
2、如果是英伟达独立显卡,可能Ubuntu系统没有自带的驱动,需要进入U盘的安装系统进行安装。可参考以下教程:https://blog.csdn.net/qq_31192383/article/details/78876905
3、关于硬盘分区问题,我们是自动分的区,建议没有特殊要求的话进行自动分区,手动分区比较麻烦,而且容易出错。
如果是一代计算棒,可安装NCSDK,英特尔官方在二代计算棒中提供了OpenVino,关于NCSDK和OpenVino的区别,NCSDK是一代计算棒提供的工具,不支持二代计算棒,NCSDK支持C语言和Python;OpenVino同时支持一代计算棒和二代计算棒,OpenVino支持C++和Python。可根据需求进行选择安装。我是先装的NCSDK再装的OpenVino,使用上尚未产生冲突。
OpenVino和NCSDK具体区别可参考:(这个网站不仅详细介绍了OpenVino和NCSDK区别,还给出了实例代码,建议仔细阅读)https://software.intel.com/en-us/articles/transitioning-from-intel-movidius-neural-compute-sdk-to-openvino-toolkit#inpage-nav-13
NCSDK安装流程:https://github.com/movidius/ncsdk.git
OpenVino安装流程:https://software.intel.com/en-us/neural-compute-stick/get-started
OpenVino安装流程按照官网操作即可,需要注意的一点是安装最好参考官方网站的英文版,中文版提供的安装指令有错误。
关于NCSDK和OpenVino的具体使用流程,在后面会介绍。
环境:Ubuntu16.04 LTS + OpenVino
硬件:神经计算棒二代(理论上一代也可以,尚未验证)
模型文件格式:Keras训练的.h5
步骤:.h5转.pb文件--->将.pb转成.xml和.bin--->写Python文件调用二代加速棒进行推理
具体实现过程:
1. Keras转tensorflow:计算棒主要支持的模型格式是Caffe和TensorFlow,我们自己的模型是Keras的.h5,转成了TensorFlow的.pb格式。具体实现代码:https://github.com/amir-abdi/keras_to_tensorflow
注意:使用keras_to_tensorflow.py转模型的时候,如果error出现“metric”,把Keras里的compile里的metric参数删掉即可。metrics代表评估模型在训练和测试时的性能的指标,不参与训练过程。具体说明可参考Kerase手册:https://keras-cn.readthedocs.io/en/latest/legacy/models/model/#compile
2. 将.pb转成.xml和.bin。按照官方说明转换即可,需要注意的是,默认转换是FTP32格式的文件,只支持在CPU下运行,加速棒需要的是FTP16格式,需要手动将命令行参数改成FTP16,转换成FTP16格式的.xml和.bin。需要修改模型转换参数,具体操作可参考官方文档:https://software.intel.com/en-us/articles/OpenVINO-Using-TensorFlow
3. 调用加速棒进行推理,自行编写C++或者Python进行调用,Python代码实现较为简单,C++复杂一些,但是流程都是一样的,都是先引入设备,然后导入IR文件,再进行推理。
代码实现参考网站:
https://software.intel.com/en-us/articles/transitioning-from-intel-movidius-neural-compute-sdk-to-openvino-toolkit#inpage-nav-13
https://software.intel.com/en-us/articles/OpenVINO-InferEngine
NCSDK使用步骤
使用神经计算棒一代在NCSDK下推理TensorFlow 模型步骤(根据官方文档整理,尚未验证)
以上运行环境全都基于OpenVino,如果是NCSDK,只支持计算棒一代,步骤如下:
第一步:使用tf.save命令,将模型保存为model.index, model.data0000001,model.meta,三种格式
第二步:使用命令行参数mvNCCompile mnist_inference.meta -s 12 -in input -on output -o mnist_inference.graph 将第一步产生的文件转换成graph格式
第一二步官方参考文档:https://movidius.github.io/ncsdk/tf_compile_guidance.html
第三步:编写python或者C调用加速棒进行推理
代码实现参考文档:https://software.intel.com/en-us/articles/transitioning-from-intel-movidius-neural-compute-sdk-to-openvino-toolkit#inpage-nav-13
http://dy.163.com/v2/article/detail/DR4BSSMG0518WFJ0.html
总结:英特尔神经计算棒二代从2018年11月14日上市到现在只有两个多月的时间,网上的资源还相对匮乏,能依靠的只有官方手册,幸运的是官网手册给出的说明较为全面与详细,但是在使用过程中总是免不了会出现一些官方手册无法搜寻到的问题。遇到解决不了的问题时,建议上官方forum上发帖,大部分问题在短时间(1-2天)会得到一个有效的解决方案。
官方forum地址:https://software.intel.com/en-us/search/site/language/en/type/forum/