Caffe框架下OPenMV的机器学习(七)生成OPenMV二进制文件

1.  量化神经网络

这一步就很轻松了,OPenMV源码中给我们提供了两个脚本:

nn_quantizer.py  nn_convert.py ,我们将这两个脚本拷贝到根目录下,然后继续编写批处理文件,

python nn_quantizer.py --gpu --model ^
路径/***训练参数文件***.prototxt ^
--weights 路径/***训练模型文件***.caffemodel ^
--save 路径/***输出的量化文件***.pkl
pause

神经网络模型训练完成后,我们需要将其减少到合适的大小。为此,我们使用 量化脚本(nn_quantizer.py)将 Caffe 模型权重和激活从 32 位浮点格式转换为 8 位定点格式。这样不仅可以减少网络大小,还可以避免浮点计算。

该 NN 量化器脚本的工作方式为,测试网络并找出动态定点表示的最佳格式。该脚本的输出为序列化 Python (.pkl) 文件,其中包括网络的模型、量化的权重和激活以及每一层的量化格式。

运行后得到的输出: 

输出显示模型经过量化后,准确率还有83.7%

2.  生成二进制文件

使用 OpenMV NN 转换器脚本将模型转换为二进制格式,可由 OpenMV Cam 运行。该转换器脚本会输出每个层类型的代码,后跟该层的维度和权重。

在 OpenMV Cam 上,固件读取该二进制文件,并使用链表数据结构在内存中构建网络。

编写批处理文件:

python nn_convert.py --model D:/OPenMV_Network/myprint_number.pkl ^
--mean D:/OPenMV_Network/mean.binaryproto ^
--output D:/OPenMV_Network/myprint_number.network
pause

运行脚本得到:

 

 

 

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 30
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值