【技术实现步骤摘要】
一种轻量级深度卷积神经网络的FPGA实现方法
本专利技术属于图像处理
,更进一步涉及数字图像模式识别
中一种轻量级深度卷积神经网络的FPGA实现方法。本专利技术可用于在现场可编程逻辑门阵列FPGA(FieldProgrammableGateArray)上实现轻量级深度卷积神经网络。
技术介绍
近年来,随着深度学习的快速发展,人工智能逐渐融入到各个领域。其中基于深度卷积神经网络DCNN(DeepConvolutionalNeuralNetwork)的算法模型与其他深度学习网络框架相比具备精度较高的优势,从2015年被提出后便一直被广泛关注。迄今深度卷积神经网络模型是最丰富的神经网络模型之一,但在各种硬件平台完成实现的却很少,这种现象主要归结于深度卷积神经网络的结构复杂度较高。目前实现深度卷积神经网络的传统流程为:首先按照一定的算法规则对网络结构进行设计,并在目标平台对应的开发软件中进行代码编译;之后通过训练集对设计好的网络进行迭代式仿真训练,直到仿真精度达到预设的数值时将网络模型的各层参数保存下来;最后通过测试集对训练精度 ...
【技术保护点】
1.一种轻量级深度卷积神经网络的FPGA实现方法,其特征在于,构建轻量级深度卷积神经网络并训练;在现场可编程逻辑门阵列FPGA中实现已训练好的轻量级深度卷积神经网络;该方法具体步骤包括如下:/n(1)构建轻量级深度卷积神经网络:/n(1a)搭建一个轻量级深度卷积神经网络,其结构依次为:输入层→第1卷积层→深度可分离卷积模块组合→特征空间融合模块→第2卷积层→输出层;/n所述深度可分离卷积模块组合由4个结构相同的深度可分离卷积模块串联组成,每个深度可分离卷积模块结构依次为:第1逐点卷积层→深度卷积层→第2逐点卷积层;/n所述特征空间融合模块由逐点卷积层和平均池化层串联组成;/ ...
【技术特征摘要】
1.一种轻量级深度卷积神经网络的FPGA实现方法,其特征在于,构建轻量级深度卷积神经网络并训练;在现场可编程逻辑门阵列FPGA中实现已训练好的轻量级深度卷积神经网络;该方法具体步骤包括如下:
(1)构建轻量级深度卷积神经网络:
(1a)搭建一个轻量级深度卷积神经网络,其结构依次为:输入层→第1卷积层→深度可分离卷积模块组合→特征空间融合模块→第2卷积层→输出层;
所述深度可分离卷积模块组合由4个结构相同的深度可分离卷积模块串联组成,每个深度可分离卷积模块结构依次为:第1逐点卷积层→深度卷积层→第2逐点卷积层;
所述特征空间融合模块由逐点卷积层和平均池化层串联组成;
(1b)设置网络参数:
将第1卷积层和第2卷积层的卷积核大小分别设置为3×3×3和1×1×1536,卷积核个数分别设置为32和4,卷积步进分别设置为2和1;
将第1深度可分离卷积模块中第1逐点卷积层、深度卷积层和第2逐点卷积层的卷积核大小分别设置为1×1×32、3×3×1和1×1×96,卷积核的个数分别设置为96、96和64,卷积步长分别设置为1、2和1;
将第2深度可分离卷积模块中第1逐点卷积层、深度卷积层和第2逐点卷积层的卷积核大小分别设置为1×1×64、3×3×1和1×1×192,卷积核的个数分别设置为192、192和128,卷积步长分别设置为1、2和1;
将第3深度可分离卷积模块中第1逐点卷积层、深度卷积层和第2逐点卷积层的卷积核大小分别设置为1×1×128、3×3×1和1×1×384,卷积核的个数分别设置为384、384和256,卷积步长分别设置为1、2和1;
将第4深度可分离卷积模块中第1逐点卷积层、深度卷积层和第2逐点卷积层的卷积核大小分别设置为1×1×256、3×3×1和1×1×768,卷积核的个数分别设置为768、768和512,卷积步长设置分别为1、2和1;
将特征空间融合模块中的逐点卷积层卷积核大小设置为1×1×512,卷积核个数设置为1536,卷积步长设置为1;
将特征空间融合模块中的平均池化层的运算核大小设置为16×16×1,运算核个数为1536,运算步长设置为1;
(2)初始化轻量级深度卷积神经网络:
使用random_normal_initializer函数将轻量级深度卷积神经网络中所有的卷积层、逐点卷积层和深度卷积层的权重初始化为满足正态分布的随机值;所述正态分布的标准差为0;
(3)生成训练集和验证集:
(3a)选取N张大小为W×H×3的全色图像组成初始图像集,其中,1000<N<10000,56<W<2000,56<H<2000,W和H分别表示图像的宽和高,W和H的单位均为像素;
(3b)生成图像裁剪参数X,X服从于区间上的均匀分布,X的单位为像素,依次将初始图像集中每张图像的前X列像素的数值置为0,并将经过此处理的所有全色图像与初始图像集合并,组成扩充图像集;
(3c)利用初始数据训练验证比例公式,计算出初始训练集占比系数和初始验证集占比系数,利用扩充数据训练验证比例公式,计算出扩充训练集占比系数和扩充验证集占比系数,分别使用扩充训练集占比系数和扩充验证集占比系数乘以扩充图像集的图像张数,得到训练集的图像张数Mtra和验证集的图像张数Mval,其中,Mtra>20000,Mtest>2000,Mtra和Mval的单位为张数;
(3d)从扩充图像集中随机抽取Mtra张图像组成训练集,从扩充图像集中随机抽取Mtra张图像组成验证集;
(4)训练轻量级深度卷积神经网络:
(4a)从训练集和验证集中分别选取未选取过的Btra和Bval张图像,32≤Btra≤128,32≤Bval≤128;
(4b)将所选取的训练集图像输入到轻量级深度卷积神经网络中,输出每张图像的训练特征向量,利用轻量级深度卷积神经网络训练集损失函数,计算所选训练集图像的损失;
(4c)将所选取的验证集的图像分别输入到轻量级深度卷积神经网络中,输出每张图像的验证集特征向量,利用轻量级深度卷积神经网络验证集损失函数,计算所选验证集图像对应的验证集损失;
(4d)判断从训练集和验证集中分别选取图像的次数是否等于10,若是,则执行步骤(4e),否则,执行步骤(4a);
(4e)分别将10个训练集损失和10个验证集损失按读取次序排列,得到训练集损失的变化趋势和验证集损失的变化趋势,判断训练集损失的变化趋势和验证集损失的变化趋势是否均为逐渐下降,若是,则执行步骤(4g),否则,执行步骤(4f);
(4f)判断训练集损失的变化趋势和验证集损失的变化趋势是否均为保持不变,若是,则将第一次所选Btra和Bval的图像总数均增大2倍后执行步骤(4a),否则,采用与步骤(3)相同的方法重新生成另一组训练集和验证集后执行步骤(4a);
(4g)读取最后1个得到的训练集损失,利用梯度下降法计算轻量级深度卷积神经网络每个卷积层、每个逐点卷积层和每个深度卷积层的每个卷积核的所有梯度;
(4h)读取轻量级深度卷积神经网络每个卷积层、每个逐点卷积层和每个深度卷积层的每个卷积核的所有梯度,使用Adam优化器迭代更新轻量级深度卷积神经网络每个卷积层、每个逐点卷积层和每个深度卷积层中每个卷积核的所有权重;所述Adam优化器的初始学习率为0.0001;
...
【专利技术属性】
技术研发人员:雷杰,高岳,李云松,谢卫莹,杜旭飞,赵东升,
申请(专利权)人:西安电子科技大学,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。