基于FPGA的一维卷积神经网络CNN的实现(一)框架

基于FPGA的⼀维卷积神经⽹络CNN的实现(⼀)框架
理论建⽴与效果展⽰
环境:Vivado2019.2。
籼稻
Part:xcku040-ffva1156-2-i,内嵌DSP个数 1920个,BRAM 600个也就是21.1Mb。
七年级英语教学论文说明:通过识别加⾼斯⽩噪声的正弦波、余弦波、较简单的实例来利⽤FPGA实现⼀维CNN⽹络,主要是实现CNN⽹络的搭建。
也就是将下列数据传输⾄,识别出下⾯哪些是正弦波、余弦波、三⾓波,通过简单实例实践,在融会贯通,最终实现雷达辐射源调制⽅式识别。
实现流程:
训练参数:通过对10000个训练集进⾏训练获得训练参数,反向计算不在FPGA中实现。
数据产⽣:Matlab产⽣1000个测试集。
数据传输:通过Pcie⾼速总线将数据传输到FPGA中进⾏识别。
实践效果:信噪⽐在 -20~5dB之间识别率100%。
数据长度:100。
CNN⽹络:第⼀层卷积:1个通道,6个卷积核,卷积核元素为5。
CNN⽹络:池化。
CNN⽹络:第⼆层卷积:6个通道,16个卷积核,卷积核元素为5。
CNN⽹络:池化。
CNN⽹络:第三层卷积:16个通道,16个卷积核,卷积核元素为5。
CNN⽹络:全连接。
CNN时效:100M时钟下,⼀条长度为100的数据识别耗时239个时钟周期,也就是2390ns=2.39us(因为综合实践太长了,还没实现最优,⽹络中有可以优化的地⽅,可以控制在200个时钟周期,也就是2us左右,也就是长度为100的数据的第⼀个数据到达FPGA到波形识别完成耗时为2us)。
第⼀节:
第⼆节:
⽂章⽬录
对CNN⽹络先进⾏简单介绍,详细了解请移⾄互联⽹。⼀、卷积层
数学表达式
连续形式:
f
g
计算机学报=
f
(
τ
索爱mp4)
倍美力软膏
g
(
t
d
τ
{\rm{f * g = }}\int_{ - \infty }^\infty {f(\tau )} g(t - \tau )d\tau
</span><span class="katex-html"><span class="base"><span class="strut" ></span><span class=" mord"><span class="mord"><span class="mord"><span class="mord mathrm" >f</span><span class="mspace" ></span><span class="mbin">∗</span><span class="mspace" ></span><span class="mord mat hrm" >g</span><span class="mspace" ></span><span class="mrel">=</span></span>< /span></span><span class="mspace" ></span><span class="mop"><span class="mop op-symbol large-op" >∫</span
><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class ="vlist" ><span class="" ><span class="pstrut" ></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">−</span><span class="mord m tight">∞</span></span></span></span><span class="" ><span class="pstrut" ></span> <span class="sizing reset-size6 size3 mtight"><span class="mord mtight">∞</span></span></span></span><span class="vlist-s"></span></span><span cl ass="vlist-r"><span class="vlist" ><span class=""></span></span></span></span></span></span><span class="mspace" style= "margin-right: 0.166667em;"></span><span class="mord"><span class="mord mathdefault" >f</span><span class="mope n">(</span><span class="mord mathdefault" >τ</span><span class="mclose">)</span></span><span class="mord mathde fault" >g</span><span class="mopen">(</span><span class="mord mathdefault">t</span><span class="mspace" ></span><span class="mbin">−</span><span class="mspace" ></span></span><span class= "base"><span class="strut" ></span><span class="mord mathde
fault" >τ</span ><span class="mclose">)</span><span class="mord mathdefault">d</span><span class="mord mathdefault" >τ</span></s pan></span></span></span></span><br> 离散形势:<br> <span class="katex--display"><span class="katex-display"><span class="katex"><span class="k atex-mathml">
f
g
=
τ
=
f
(
τ
)
g
(
n
τ
)
{\rm{f * g = }}\sum\limits_{\tau= - \infty }^\infty {f(\tau )} g(n - \tau )
</span><span class="katex-html"><span class="base"><span class="strut" ></span><span class=" mord"><span class="mord"><span class="mord"><span class="mord mathrm" >f</span><span class="mspace" ></span><span class="mbin">∗</span><span class="mspace" ></span><span class="mord mat hrm" >g</span><span class="mspace" ></span><span class="mrel">=</span></span>< /span></span><span class="mspace" ></span><span class="mop op-limits"><span class="vlist-t vlist-t2"><span class="vl ist-r"><span class="vlist" ><span class="" ><span class="pstrut" ></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathdefault mtight" >τ</span><span class="mrel mtight">=</span><span class="mord mtight">−</span><span class="mord mtight">∞</span></span></span></span><span cl ass="" ><span class="pstrut" ></span><span class=""><span class="mop op-symbol large-op">∑</span></ span></span><span class="" ><span class="pstrut" ></span><span class="sizing reset-si ze6 size3 mtight"><span class="mord
mtight">∞</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vl ist" ><span class=""></span></span></span></span></span><span class="mspace" ></span> <span class="mord"><span class="mord mathdefault" >f</span><span class="mopen">(</span><span class="mord mathd efault" >τ</span><span class="mclose">)</span></span><span class="mord mathdefault" >g</span><span class="mopen">(</span><span class="mord mathdefault">n</span><span class="mspace" ></span>< span class="mbin">−</span><span class="mspace" ></span></span><span class="base"><span class="strut" style="hei
先对g函数进⾏向左翻转,然后再把g函数平移到n,在这个位置两个函数对应点相乘,再把所有位置相乘的结果相加。
1.⼆维卷积
⼆维卷积matlab演⽰:
5×5的矩阵a与3×3的矩阵b相卷积:
⼆维卷积图⽰(图中卷积核翻转还是和原来⼀样):威县仲夷小学

本文发布于:2024-09-21 13:42:12,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/475014.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:卷积   识别   训练   实践   数据   耗时
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议