CMSIS-NN CIFAR10的md

Caffe模型地址
CMSIS-NN CIFAR10示例

        这个例子展示了如何将经过训练的Caffe模型量化为8位,并使用[CMSIS-NN]这个将其部署到Arm Cortex-M 的CPU上。

入门:
        从训练过的Caffe模型生成代码依据的步骤如下:
1、Caffe模型协议文本的网络解析。
2、量化到8bit权重和激活。
3、使用优化神经网络生成代码。

nn_quantizer.py: :需要Caffe模型定义用来训练/测试由有效的数据路径(lmdb)和训练模型文件(.caffemodel)组成的模型。它解析网络图的连通性,逐层量化为 8 bit权重/激活,同时在测试集上的精度损失达到最小。其次它将网络图连接性、量化参数转储到pickle文件中。

code_gen.py: :从上一部获得得到的量化参数和网络图连通性,并生成由nn function生成的代码。支持的层:卷积、内积、池花(最大/平均)和relu层。它生成(a)weight.h(b)parameter.h:由量化范围和(c)main.cpp:网络代码组成。

Note::确保Caffe模型已经安装,以及它的python路径是否添加入$PYTHONPATH 环境变量中。

用法:
1、在.prototxt文件中更新数据(lmdb)路径,并运行nn_quantizer.py 解析以及量化网络。这一步如果在CPU上运行的话需要一段时间,因为在数据集上确认准确性的时候会逐层量化网络。

bash脚本语言

python nn_quantizer.py --model models/cifar10_m4_train_test.prototxt \ 
  --weights models/cifar10_m4_iter_70000.caffemodel.h5 \
  --save models/cifar10_m4.pkl

**Note:*要启用GPU进行量化扫描,请使用–gpu参数。

2、在Arm Cortex-M CPUs上运行代码

python code_gen.py --model models/cifar10_m4.pkl --out_dir code/m4

常见问题:
1、ImportError: No module named caffe
将Caffe python安装路径添加到$PYTHONPATH环境变量,例如

 export PYTHONPATH="/home/ubuntu_user/caffe/python:$PYTHONPATH"

2、 F0906 15:49:48.701362 11933 db_lmdb.hpp:15] Check failed: mdb_status == 0 (2 vs. 0) No such file or directory
确保模型prototxt定义中存在有效的数据集(lmdb),因为需要数据集来查找激活的量化范围。(可以看这个网站)

已知限制:
1.解析器仅支持conv、pool、relu、fc层。
2.量化器仅支持前向反馈网络,而不支持分支出入(例如:SqueezeNet)

你可能感兴趣的:(我要无伤阅读英语,Caffe模型,人工智能,深度学习,ubuntu,神经网络,python)