文章目录

概要网络结构一维卷积介绍(科普性质)FPGA架构FPGA端口定义操作步骤结果演示总结

概要

本文介绍一种基于FPGA的1维卷积神经网络算法加速实现的方案,其中为了进一步提升运算速度,除了第一层卷积采用的是普通卷积运算(CONV),其余卷积层和池化层采用的是二值化运算,即二值化的卷积与池化。

运算过程包含了卷积层、池化层、批标准化层、全局池化、二值化卷积、全连接层、激活函数层,均采用RTL级代码实现,即全部采用Verilog HDL代码实现,兼容Intel Altera FPGA 与 AMD Xilinx FPGA,便于移植。

网络结构

具体网络结构如下表所示: 此项目先用python代码实现训练和推理过程,获得权重,然后再将推理过程移植到FPGA上进行。 python运算过程一共分为17层,在FPGA实现时将其划分为7个大层,运算过程包含了卷积层、池化层、批标准化层、全局池化、二值化卷积、全连接层、激活函数层,均采用RTL级代码实现,即全部采用Verilog HDL代码实现,兼容Intel Altera FPGA 与 AMD Xilinx FPGA。

一维卷积介绍(科普性质)

1D-CNN是指一维卷积神经网络(1D Convolutional Neural Network),它是卷积神经网络的一种变体。1D-CNN主要用于处理一维序列数据,比如音频、文本等。与传统的全连接神经网络相比,1D-CNN可以更好地处理序列数据中的局部关系,因此在语音识别、自然语言处理、时间序列预测等任务中表现较好。

1D-CNN使用卷积层来提取序列数据中的特征。卷积层通过滑动一个固定大小的窗口在输入数据上进行卷积操作,提取窗口内的特征,然后将这些特征映射到下一层。与二维卷积神经网络(2D-CNN)类似,1D-CNN还可以使用池化层来减少特征映射的维度和计算量。

1D-CNN通常由多个卷积层和池化层交替组成,最后使用全连接层将提取的特征映射到输出。在训练过程中,1D-CNN使用反向传播算法来更新模型参数,以最小化损失函数。

1D-CNN主要由以下几部分组成:

输入层:接收一维序列数据作为模型的输入。

卷积层:使用一系列可训练的卷积核在输入数据上滑动并提取特征。卷积操作能够有效地提取局部信息,从而捕捉输入序列的局部模式。

批标准化(Batch Normalization):用于加速网络收敛和提高模型的鲁棒性,使得模型更易于训练。

激活函数:对卷积层的输出进行非线性变换,增强模型的表达能力。

池化层:通过对卷积层输出进行降维,减少计算量,同时提高模型的鲁棒性和泛化能力。

全连接层:将池化层的输出映射到模型的输出,通常用于分类、回归等任务。

在使用1D-CNN时,我们通常需要设置一些超参数,比如卷积核的大小、卷积层的个数、池化操作的方式、激活函数的选择等等。这些超参数的选择会影响模型的性能和效率,需要通过实验进行调整。

1D-CNN在处理时间序列数据方面表现良好,比如音频信号处理、文本分类、情感分析、股票价格预测等任务。它能够自动提取数据中的重要特征,从而减少人工特征提取的工作量,同时具有较好的泛化性能。

本节内容转载自:机器朗读 https://www.bilibili.com/read/cv23110682?from=search&spm_id_from=333.337.0.0 出处:bilibili

FPGA架构

包含按键消抖、串口接收、串口发送、卷积算法模块

FPGA端口定义

module fpga_top(

input sys_clk, //外部50M时钟

input sys_rst_n, //外部复位信号,低有效

input [1:0] key , //按键,低有效

output [1:0] led , //LED,低有效-未使用

input uart_rxd, //UART接收端口

output uart_txd //UART发送端口

);

操作步骤

1.加载程序,打开串口,波特率:96002.按下key0,将串口RAM地址清零;3.将准备好输入数据通过串口下发给FPGA(以16进制格式发送)4.按下key1,启动卷积推理运算;5.运算完成后,结果将以串口形式返回6.串口接收端:设置为ASCII码格式接收,将返回最大值对应的索引值。

结果演示

提示:这里可以添加总结

总结

以上即为基于FPGA的1D-CNN或BNN的大致介绍,该项目非常便于移植到各种不同应用场景,欢迎交流沟通,本项目在Altera FPGA和Xilinx FPGA开发板上均通过上板验证。如需代码,请私信获取。 另外,本人专业从事图像处理算法、AI深度学习算法、各种神经网络算法的FPGA加速实现多年,可基于Matlab、Python的算法代码进行FPGA加速实现,如需合作,欢迎私信沟通。

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: