碎碎思 · 1月23日

适用 FPGA 的小型神经网络(一)

之前推荐过适合 FPGA 的神经网络,包括 CNN、DNN 及 SNN 等,想实现的可以去看下:

优秀的 Verilog/FPGA 开源项目介绍(三十五)- TinyML
优秀的 Verilog/FPGA 开源项目介绍(二十四)- 脉冲神经网络 (SNN)
优秀的 Verilog/FPGA 开源项目介绍(二十二)- 深度神经网络 (DNN)
优秀的 Verilog/FPGA 开源项目介绍(二十一)- 卷积神经网络(CNN)
优秀的 Verilog/FPGA 开源项目介绍(二十)- 张量处理单元(TPU)

今天我们分享几个用 FPGA 实现的小型神经网络,侧重应用。

LeNet

LeNet 主要用来进行手写字符的识别与分类,其确立了 CNN 的结构,现在神经网络中的许多内容在 LeNet 的网络结构中都能看到:

image.png

C1,卷积层 S2,池化层 C3,卷积层 S4,池化层 C5,卷积层 F6,全连接层 OUTPUT,全连接层

《基于 MATLAB 与 FPGA 的图像处理教程》LeNet5

Image

https://gitee.com/crazybingo/Book_VIP/tree/master/2_FPGA_Sim/8.2_LeNet5

这是《基于 MATLAB 与 FPGA 的图像处理教程》中一个例程,经过 MATLAB 仿真与 FPGA 实现,在相关开发板上验证通过。

DigitalRecognition-基于 LeNet-5

Image

https://github.com/suisuisi/FPGAandCNN/tree/main/DigitalRecognition

Image

神经网络在浅色背景上检测深色数字的项目,详细的设计和视频演示,大家看 README 即可。

AlexNet

AlexNet 是 2012 年 ImageNet 竞赛的冠军模型,其作者是神经网络领域三巨头之一的 Hinton 和他的学生 Alex Krizhevsky(参考:https://blog.csdn.net/sinat_39620217/article/details/131083754)。

AlexNet 与此前的 LeNet 相比,具有更深的网络结构,包含 5 层卷积和 3 层全连接,对比 LeNet 如下所示。

Image

alexnet-FPGA and GPU

对 FPGA 和 GPU 上的 AlexNet CNN 执行时间的基准测试。

https://github.com/pratikpv/alexnet

Image

该项目除了学习神经网络知识外,也在 Xilinx FPGA 上运行 OpenCL 给了详细的参考示例,链接如下:

https://gitlab.com/Tango-DNNbench/Tango/tree/master/FPGA

CNN_OPEN & DNN_PUF_FPGA

利用 SystemVerilog 生成 Lenet 模型,并在 FPGA 上进行综合和实现。

https://github.com/renaturation/DNN_PUF_FPGA

Image

该项目是个研究类项目,适合学习和练手。

总结

在 FPGA 运行神经网络在前几年是个很火的方向,最近一些敏捷开发像 OpenCL、HLS 等已经冲淡了不少热度,用纯 HDL 开发相关项目出现的越来越少了。但是今天这些小型神经网络项目适合入门相关行业,适合理解相关知识点。每个项目中有很多很多相关的例程,今天只是介绍一些个人认为比较经典的项目。

END

作者:碎碎思
来源:OpenFPGA

相关文章推荐

更多 FPGA 干货请关注 FPGA 的逻辑技术专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
10617
内容数
592
FPGA Logic 二三事
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息