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

理论建立与效果展示

环境:Vivado2019.2。
Part:xcku040-ffva1156-2-i,内嵌DSP个数 1920个,BRAM 600个也就是21.1Mb。

说明:通过识别加高斯白噪声的正弦波、余弦波、三角波较简单的实例来利用FPGA实现一维CNN网络,主要是实现CNN网络的搭建
也就是将下列数据传输至FPGA,识别出下面哪些是正弦波、余弦波、三角波,通过简单实例实践,在融会贯通,最终实现雷达辐射源调制方式识别。
在这里插入图片描述

实现流程:
训练参数:通过pytorch对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)。

文章目录


正在写。。。

猜你喜欢

转载自blog.csdn.net/qq_40147893/article/details/121495136