前面讲解了C程序的基本情况,下面就是重中之重 —— 数据如何使用。也就是群中分享的文件。首先看两个文件夹

dat_save_img5    --->  此文件夹中采用MNIST数据集里第五张图的数据。方便在matlab中导入。

dat_save_img5_fpga   --- > 此文件夹中的数据与上面的一样,只是采用里并行输出方式,方便在FPGA中导入。当然你在FPGA中采用上一个文件夹中的数据完全没问题。

例如 权重 W23 在上述两个文件夹中分别是。第二种排列,我将数据导入到FPGA的rom中,一个地址读一次就可以将一个 5x5的权重矩阵读出来,第一种排列导入到rom中就需要递增25个地址读25次。就是这个差别了。

下面说第一层数据的引用。

第一层,输入数据为 32x32 的矩阵,打开txt文件一张二值化的 4  显现出来,这个在之前的 2 章节有截图。这个 32x32 的图像经过了 6 个 5x5的卷积核,卷积之后出来了 6 张 28x28 的小图。打开 dat_save_img5_fpga 中的 lay1_dat.txt 还可以分辨出6张4的二值化小图。整个运算过程是什么样子的呢? 便于理解我将 matlab中的程序贴一部分出来,三张图依次是 导入txt数据(cell),转换成double类型准备运算,运算过程

妥妥的 5x 5 卷积之后再加上一个 bias,然后relu一下  ——   负数就归0.  第一层 OVER !所以用FPGA实现 神经网络是很简单的(需要一个量化后的精度验证环境)。需要注意一点的是,matlab中强制类型转换默认是四舍五入,导致和C语言中的导出的数据有一点点差别,但是不影响最终的结果。

下面一层是pooling ,就是简单的2x2的矩形框里找最大数,步进为2。 matlab实现方式如下:

依次类推到最后一层,第六层。也就是文件里面的outx.txt的数据。

最终结果,因为C中的截断 与matlab中默认的四舍五入 两种定点化方式不同导致结果数据大小有一点点不同。但是不影响最终结论。推断出也是数据4 。

前面的铺垫如此了,后面的文章就是专门介绍 HDL 部分。

神经网络LeNet5的 的 FPGA RTL级实现 4相关推荐

  1. 神经网络LeNet5的 的 FPGA RTL级实现 3

    经过了前面的开胃菜,项目正式开始.一步步讲解这个模型怎么玩起来的.从C 到 matlab 到 FPGA ,三个平台联合起来完成这个 由 RTL 实现 CNN 的项目. 第一步,讲解深度学习模型在C中是 ...

  2. FPGA RTL级设计原则

    1.1 FPGA RTL级设计原则 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA RTL级设计原则: 5)结束语. 1.1.2 本节引言 "不积跬步 ...

  3. 【FGPA】RTL级的意思

    求科普:RTL级是什么意思 我用FPGA只知道写VERILOG,然后MODELSIM仿真,然后综合.一直看大家说RTL级,这是个什么意思,还有其他级吗? sdwsh (2012-7-27 13:26: ...

  4. IC设计通过system c 建模和 rtl级的有什么区别

    对于IC项目的设计.验证各个阶段,都是在玩弄model,只不过是大家的观看视角不同而已.有些人喜欢华丽外表的model,有些人关注身披薄纱的.或一丝不挂的. SystemC是一种建模语言,可以对软硬件 ...

  5. 深度学习(四)卷积神经网络Lenet-5实现

    卷积神经网络Lenet-5实现 原文地址:http://blog.csdn.net/hjimce/article/details/47323463 作者:hjimce 卷积神经网络算法是n年前就有的算 ...

  6. Verilog的数据流、行为、结构化与RTL级描述

    Verilog语言可以有多种方式来描述硬件,同时,使用这些描述方式,又可以在多个抽象层次上设计硬件,这是Verilog语言的重要特征. 在Verilog语言中,有以下3种最基本的描述方式: 数据流描述 ...

  7. (四)RTL级低功耗设计

    前面介绍了系统级的低功耗设计,换句话说就是在系统级降低功耗可以考虑的方面.系统级的低功耗设计,主要是由系统级设计.具有丰富经验的人员实现,虽然还轮不到我们设计,我们了解一下还是比较好的.我们前端设计人 ...

  8. HLS:卷积神经网络LeNet5的实现与测试

    目录 一.引言 二.LeNet5的学习 三.数学知识补充 四.HLS代码设计 五.仿真综合与优化 六.Zynq平台搭建测试 七.一些注意点 八.文献时间线与后续工作 一.引言 1.开发环境. Wind ...

  9. 深度学习 CNN卷积神经网络 LeNet-5详解

    卷积神经网络( Convolutional Neural Network, CNN): 是一种常见的深度学习架构,受生物自然视觉认知机制(动物视觉皮层细胞负责检测光学信号)启发而来,是一种特殊的多层前 ...

最新文章

  1. python 把2个列表或者2个元组转成字典
  2. 输入字符串中含有该字符的个数
  3. springMVC 几种页面跳转方式
  4. js中类型识别的方法
  5. UDP(发短信:简单模拟)
  6. linux制作成后台服务,把dotnetcore 控制台app设置成linux后台服务
  7. CodeForces 1138B暴力+剪枝
  8. Property or method “id“ is not defined on the instance but referenced during render.Make sure ......
  9. MVC教程第四篇:传递表单数据
  10. 【快速入门Linux】8_Linux命令—系统信息相关命令(时间、磁盘、进程)
  11. Python(2.7)-元组(tuple)
  12. classpath目录
  13. php数组的几个函数和超全局变量
  14. TensorFlow基础篇(一)——tf.train.exponential_decay()
  15. 论SetItemData和GetItemData
  16. ELK 学习笔记之 elasticsearch Bulk操作
  17. vue仿网易云音乐播放器
  18. 微信公众平台二次开发技术文档
  19. python爬虫-京东登录
  20. 第九届蓝桥杯 省赛 C语言A组

热门文章

  1. React-Antd 登录 记住密码
  2. [转载] 史蒂夫·乔布斯恪守三条原则: “共鸣”“专注”和“灌输”
  3. Win7,每打开一个文件夹,都会在新窗口中打开
  4. css阴影遮盖其他组件
  5. native字体尺寸自适应 react_react native 字体不随系统字体变化而变
  6. 【Pytorch】使用Pytorch进行知识蒸馏
  7. python有头文件吗_python头文件怎么写
  8. oracle 内关联,左外关联,右外关联,全外关联
  9. java web 编辑器_基于Java+web的在线Java编辑器 PDF 下载
  10. 【金阳光测试】Android自动化测试第一季第三讲—Monkey原理初步和改良优化