基于FPGA的手写数字识别神经网络加速——pytorch网络搭建及训练
Posted 佛系的FPGAer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于FPGA的手写数字识别神经网络加速——pytorch网络搭建及训练相关的知识,希望对你有一定的参考价值。
点击蓝字
该项目的Github链接如下:
https://github.com/buaa-zzx/Deep_learning_on_FPGA
LetNet网络作为神经网络学习的当中的“Hello World”,是学习神经网络的经典项目,本次实验也利用PYNQ框架实现手写数字识别作为神经网络加速的入门教程。首先简要介绍一下LetNet网络:
其首先输入大小为32*32的单通道图片,然后通过若干卷积层和全连接层得到最终的分量向量,从而得到最终的分类结果。可以看到LetNet网络结构非常的简单明了,然后首先使用pytorch框架对网络进行搭建和训练,首先导入相关库函数:
然后加载pytorch自带的MNIST数据集,并将其可视化:
然后定义网络结构,并且使用优化器进行训练,可以看到,得到的训练结果如下所示:
准确率在98%到99%之间波动,效果良好,然后对权重进行保存。由于保存的pth文件pynq难以直接读取,所以可以将其转换为其他形式的文件,如bin,txt等。这里为了让参数更加直观,将其保存为txt文件。由于pth文件其为字典形式的文件,所以需要编写一个脚本文件将其转换为需要的文件格式。打开第一个卷积层的权重可以看到其有150个数据,符合6*5*5=150的预期。LetNet的网络搭建及训练部分告一段落,下一部分将利用HLS平台实现整个神经网络。
名称|佛系的FPGAer
以上是关于基于FPGA的手写数字识别神经网络加速——pytorch网络搭建及训练的主要内容,如果未能解决你的问题,请参考以下文章
手写数字识别基于BP神经网络手写数字识别matlab源码含GUI
手写数字识别基于matlab GUI BP神经网络单个或连续手写数字识别系统含Matlab源码 2296期
手写数字识别基于matlab GUI BP神经网络单个或连续手写数字识别系统含Matlab源码 2296期