Verilog实现LSTM神经网络数字手写识别

空闲时间使用Verilog写了LSTM神经网络数字手写识别的代码。只实现了功能,里面的乘法和加法直接使用了算数符号,按说是可以使用加法器和乘法器优化的,但是一来我并不是从业者,不知道在具体项目中怎么优化,二来也没时间改这东西,所以就这么着吧。我用几个图片跑了一下,能识别,但是有bug,有的时候识别结果超过了9,也就是说并不是识别错误,确实有bug,同样不想改了,这东西确实没有什么意义。没有在FPGA上跑,估计频率是上不去的,因为有着大量的组合逻辑,在路径上延迟很大,应该可以插入寄存器进行优化提升工作频率。另外,在乘法中,我估摸着不会溢出,所以直接粗暴的截位了,这也是潜藏的不稳定因素。
权重是我在TensorFlow环境下搭建网络训练的,隐藏层64,提取权重后使用MATLAB进行了定点化保存到TXT文件用作仿真,之后应该可以制作coe固定到rom中在FPGA上跑。测试图片也是读到文件中然后使用MATLAB转换成了TXT文件。
百度云
链接: https://pan.baidu.com/s/1YNwDLidttdANC7ZQInC6Ww 提取码: 3ia2
大概写一下,没什么技术含量。写的很粗糙,代码和博客都是。要是有人感兴趣,等我找到工作再试着改改。仿真结果如下所示,可以看到每一个识别的数字输出都有valid信号标志出来。
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值