完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
训练一个神经网络并移植到Lattice FPGA上,通常需要开发人员既要懂软件又要懂数字电路设计,是个不容易的事。好在FPGA厂商为我们提供了许多工具和IP,我们可以在这些工具和IP的基础上做二次开发。 移植一个神经网络到Lattice FPGA上可以分为三步:第一步:使用Tensorflow, Caffe, Keras训练自己的网络。(这里Lattice官网的参考设计提供了训练网络部分的参考代码) 第二步:使用Lattice sensAI 软件编译已训练好的神经网络,定点化网络参数。该软件会根据神经网络结构和预设的FPGA资源进行分析并给出性能评估报告,此外用户还可以在软件中做Inference的仿真,查看基于浮点参数和基于定点参数的仿真结果。甚至还能通过USB连接PC与FPGA进行硬件调试。 第三步:调用Lattice CNN IP以及其他FPGA组件(例如MIPI视频源接入、ISP、目标画框、NMS算法、视频输出等),构建一个完整CNN Inference系统和产品。 |
|
相关推荐
5个回答
|
|
莱迪思官网上下载对象计数参考设计
链接如下:(也可以点击阅读原文查看)<http://www.latticesemi.com/Products/DesignSoftwareAndIP/IntellectualProperty/ReferenceDesigns/ReferenceDesign03/ObjectCounting> |
|
|
|
解压下载的文件
总共有三个文件夹: 1)dataset 文件夹下是训练使用的图片和标签;这里是检测人的,大概7000多张图片,你可以直接用这些图片做训练。分辨率是224*224的 2)training_code文件夹下是训练用的代码; 3)Object_Counting_Using_CNN_Accelerator_IP文件夹下是FPGA部分的RTL设计工程。 |
|
|
|
训练数据集的准备
如果你没有自己的训练数据,只是想要学习流程,那请直接复制粘贴dataset文件夹下的ImageSets 和 training两个文件夹并粘贴到training_code/src底下;这里的图片可用作训练,分辨率为224*224,目标是找出图片中人的位置。每张图片都对应一个txt文本格式的标签给出了人的位置,这个标签是KITTI格式的,符合Lattice提供的训练代码对标签格式的要求。 如果你希望用自己的数据集做训练,那请在training_code/image/training文件夹下放入你自己的图片和标签,然后运行training_code/image/training/dataset_create.py文件,运行后会在training_code/image/training/ImageSets文件夹下生成train.txt文件;然后同样将ImageSets 和 training 两个文件夹粘贴到training_code/src底下。 工程中自带的标签类别名是person,这个工程本来是用来检测人的; 如果你的数据集标签类别名更换了不是person了,请在training_codesrcconfig.py的第41行修改为你自己的标签类别名。注意不管你的标签文档里的标签类别名是大写,还是小写,还是大小写混合,这里请统一用小写。 如果你想训练其他图片而你又没有数据集,那么请查看我的上一篇该系列的博文如何下载谷歌开源数据集。 |
|
|
|
训练神经网络
执行training_code/src/train.py开始训练,这里有一些依赖库需要安装,比如Tensorflow, Keras等,耐心安装好需要的库,运行代码。每1000个step会打印一次loss总结,每1000个step保存一次checkpoint文件。具体多少个step以及check_point保存地址都可以在如下的train.py文件里修改。 随着step的增加,loss在慢慢变小 经过很多次的迭代我们就可以得到最终需要的check_point文件了。到这里如果只做软件部分那么已经结束了,但是如果需要继续做移植工作,那么还需要把checkpoints文件转换成pb文件。 |
|
|
|
从checkpoint文件到pb文件
我们需要把checkpoints封成pb文件才能送入sensAI做分析。 在training_code./src/logs/tensorflow文件夹下可以找到test.pbtxt,把它改名为model.pbtxt并复制到training_code/freeze/model文件夹下,如果该文件夹下已有model.pbtxt文件,请根据自己的需要决定是否覆盖或备份。 同样的把我们训练得到的check_point相关的文件都复制到:training_code/freeze/model文件夹下;然后运行training_code/freeze/trainckpt2inferencepb.py 运行后就能生成model_frozenforInference.pb文件了。 pb文件可以送入Lattice sensAI 软件进行分析,还可以编译成Lattice CNN IP 指令,量化网络参数,仿真,硬件调试等。下一节介绍如何使用Lattice sensAI 软件。 |
|
|
|
只有小组成员才能发言,加入小组>>
【爱芯派 Pro 开发板试用体验】人体姿态估计模型部署后期尝试
1655 浏览 0 评论
1146 浏览 0 评论
【爱芯派 Pro 开发板试用体验】人体姿态估计模型部署后期尝试
1193 浏览 0 评论
【爱芯派 Pro 开发板试用体验】在爱芯派 Pro上部署坐姿检测
1200 浏览 0 评论
【爱芯派 Pro 开发板试用体验】利用爱芯派 Pro部署USB摄像头
1357 浏览 0 评论
【爱芯派 Pro 开发板试用体验】爱芯元智AX650N部署yolov5s 自定义模型
827浏览 1评论
1853浏览 1评论
【爱芯派 Pro 开发板试用体验】+ 利用TF卡进行系统更新
1494浏览 1评论
1453浏览 1评论
761浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 07:42 , Processed in 0.800491 second(s), Total 87, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号