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)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Love And Program

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值