当前位置:首页 > 新闻资讯 > FPGA之家动态 >

基于FPGA的池化方法及FPGA芯片技术

时间:2025-03-22      来源:FPGA_UCY 关于我们 0

本发明专利技术公开了一种基于FPGA的池化方法及FPGA芯片,包括:逐一获取一特征图的若干待池化数据;在每获取一待池化数据后,将待池化数据进行横向池化处理,得到一横向池化数据,并将横向池化数据写入FPGA内的一FIFO存储模块中;其中,所述FPGA内设置有若干FIFO存储模块;将各FIFO存储模块中的横向池化数据读出;对读出的各横向池化数据进行纵向池化,得到一纵向池化数据;根据所得到的各纵向池化数据进行尺度变换,并将尺度变换后的数据输出。通过实施本发明专利技术能够实现基于FPGA的池化运算。本发明专利技术能够实现基于FPGA的池化运算。本发明专利技术能够实现基于FPGA的池化运算。

全部详细技术资料下载

【技术实现步骤摘要】

基于FPGA的池化方法及FPGA芯片

[0001]本专利技术涉及卷积神经网络

,尤其涉及一种基于FPGA的池化方法及FPGA芯片。

技术介绍

[0002]卷积神经网络( ,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络( ),是深度学习(deep )的代表算法之一。

[0003]早期卷积神经网络内的池化函数主要在CPU中实现,但CPU的串行计算和复杂的指令集,面对大数量并行,显得力不从心,如果提高主频和增加核心数又代价太高;后来GPU应用到卷积神经网络中,它使用的SIMD(单指令流多数据流)架构可以完美支持并行运算,加速神经网络的计运算过程,因此GPU在训练场景中占据着主导地位,大规模产品化时,因功耗过高而使用受限。最近几年ASIC异军突起,它完美的满足了并行运算和低功耗,但灵活性不足,当算法有更新时,又需要重新设计兼容,成本过高。因此现有CPU、GPU和ASIC不能同时兼容并行运算、低功耗和灵活性的特点等;而FPGA可进行并行多路处理,优化的得当时可以实现高性能低功耗,另外FPGA独有的显著特点是可重构性,允许被多次变成改变硬件功能,使得它可以通过不断实验,测试多种不同的硬件设计和对应程序,找出性能的优化点,从而得出特定神经网络在特定应用场景下的最优解决方案。所以才用FPGA进行池化运算是一个较优的选择。而如何基于FPGA实现池化运算是一个亟需解决的问题。

技术实现思路

[0004]本专利技术实施例提供一种基于FPGA的池化方法及FPGA芯片,能够实现基于FPGA的池化运算。

[0005]本专利技术一实施例提供了一种基于FPGA的池化方法,包括:

[0006]逐一获取一特征图的若干待池化数据;

[0007]在每获取一待池化数据后,将待池化数据进行横向池化处理,得到一横向池化数据,并将横向池化数据写入FPGA内的一FIFO存储模块中;其中,所述FPGA内设置有若干FIFO存储模块;

[0008]将各FIFO存储模块中的横向池化数据读出;

[0009]对读出的各横向池化数据,进行纵向池化,得到一纵向池化数据;

[0010]根据所得到的各纵向池化数据进行尺度变换,并将尺度变换后的数据输出。

[0011]进一步的,将待池化数据进行横向池化处理,得到一横向池化数据,包括:

[0012]将待池化数据延迟一拍得到第一延拍数据,将待池化数据延迟两拍后得到第第二延拍数据;

[0013]将待池化数据、第一延拍数据以及第二延拍数据作为基准数据,继而根据基准数据生成在所述池化窗口尺寸下,池化窗口所需的并置数据;

[0014]根据所述并置数据生成所述横向池化数据中各字节位置上的横向池化子数据,继而将各横向池化子数据并行输出,得到所述横向池化数据;

[0015]其中,根据并置数据生成横向池化数据中一字节位置上的横向池化子数据,包括:

[0016]根据所需生成的横向池化子数据在横向池化数据中的字节位置以及池化窗口尺寸,确定对并置数据进行数据选取时的初始字节位置和终止字节位置;

[0017]根据所述初始字节位置和终止字节位置从并置数据中截取若干并置子数据;

[0018]根据各并置子数据重复执行数据运算操作,生成横向池化数据中一字节位置上的横向池化数据;

[0019]所述数据运算操作包括:以两个并置子数据为一组,从初始的并置子数据起,按顺序将各并置子数据分为若干横向池化组,并在存在落单的并置子数据时,将落单的并置子数据进行延拍后,生成延拍并置子数据;

[0020]将各横向池化组中的两并置子数据进行池化计算,得到每一横向池化组的计算结果;

[0021]在不存在延拍并置子数据时,将各横向池化组的计算结果作为下一次数据运算操作时的各并置子数据;

[0022]在存在延拍并置子数据时,将各横向池化组的计算结果以及延拍并置子数据作为下一次数据运算操作时的各并置子数据。

[0023]进一步的,根据基准数据生成在所述池化窗口尺寸下,池化窗口所需的并置数据,包括:

[0024]在所述池化窗口尺寸为N*N时,从所述待池化数据的低位开始截取个字节的数据,得到若干第一数据;

[0025]从所述第二延拍数据的高位开始截取个字节的数据,得到若干第二数据;

[0026]根据并置数据所需的预设字节数、各第一数据的字节数、各第二数据的字节数以及第一延拍数据的字节数,计算所需补零的字节数,继而根据所述补零的字节数确定补零数据;

[0027]将补零数据、各第一数据、第一延拍数据以及各第二数据进行拼接,得到所述并置数据。

[0028]进一步的,根据所需生成的横向池化子数据在横向池化数据中的字节位置以及池化窗口尺寸,确定对并置数据进行数据选取时的初始字节位置和终止字节位置,包括:

[0029]将所需生成的横向池化子数据在横向池化数据中的字节位置,作为初始字节位置;

[0030]将终止字节位置设为第N个字节。

[0031]进一步的,所述FIFO存储模块的数量为N。

[0032]进一步的,对读出的各横向池化数据进行纵向池化,得到一纵向池化数据包括:

[0033]在读出N个横向池化数据后,根据N个横向池化数据生成若干数据集;其中,每一数据集包括N个横向池化子数据且各个横向池化子数据在其所对应的横向池化数据中的字节位置相同;

[0034]根据各数据集并行生成所述纵向池化数据中对应字节位置上的纵向池化子数据,

继而将各纵向池化子数据并行输出得到一纵向池化数据;

[0035]其中,根据一数据集生成所述纵向池化数据中一对应字节位置上的纵向池化子数据,包括:

[0036]根据数据集中各横向池化子数据,重复执行第二数据运算操作,生成纵向池化数据一对应字节位置上的纵向池化子数据;

[0037]所述第二数据运算操作包括:以两个横向池化子数据为一组,从初始的横向池化子数据起,按顺序将横向池化子数据分为若干纵向池化组,并在存在落单的横向池化子数据时,将落单的横向池化子数据延拍,生成延拍横向池化子数据;

[0038]将各纵向池化组中的两横向池化子数据进行池化计算,得到每一纵向池化组的计算结果;

[0039]在不存在落单的横向池化子数据时,将各纵向池化组的计算结果作为下一次执行第二数据运算操作时的各横向池化子数据;

[0040]在存在落单的横向池化子数据时,将各纵向池化组的计算结果以及延拍并置子数据作为下一次执行第二数据运算操作时的各横向池化子数据。

[0041]进一步的,根据所得到的各纵向池化数据进行尺度变换,并将尺度变换后的数据输出,包括:

[0042]根据池化步长所对应的数据抽取间隔,对各纵向池化数据进行数据抽取,并根据抽取后的数据生成若干待变换数据;

[0043]根据预设的缩放比例

【技术保护点】

【技术特征摘要】

1.一种基于FPGA的池化方法,适用于在FPGA内执行,其特征在于,包括:逐一获取一特征图的若干待池化数据;在每获取一待池化数据后,将待池化数据进行横向池化处理,得到一横向池化数据,并将横向池化数据写入FPGA内的一FIFO存储模块中;其中,所述FPGA内设置有若干FIFO存储模块;将各FIFO存储模块中的横向池化数据读出;对读出的各横向池化数据进行纵向池化,得到一纵向池化数据;根据所得到的各纵向池化数据进行尺度变换,并将尺度变换后的数据输出。2.如权利要求1所述的基于FPGA的池化方法,其特征在于,将待池化数据内进行横向池化处理,得到一横向池化数据,包括:将待池化数据延迟一拍得到第一延拍数据,将待池化数据延迟两拍后得到第第二延拍数据;将待池化数据、第一延拍数据以及第二延拍数据作为基准数据,继而根据基准数据生成在所述池化窗口尺寸下,池化窗口所需的并置数据;根据所述并置数据生成所述横向池化数据中各字节位置上的横向池化子数据,继而将各横向池化子数据并行输出,得到所述横向池化数据;其中,根据并置数据生成横向池化数据中一字节位置上的横向池化子数据,包括:根据所需生成的横向池化子数据在横向池化数据中的字节位置以及池化窗口尺寸,确定对并置数据进行数据选取时的初始字节位置和终止字节位置;根据所述初始字节位置和终止字节位置从并置数据中截取若干并置子数据;根据各并置子数据重复执行数据运算操作,生成横向池化数据中一字节位置上的横向池化数据;所述数据运算操作包括:以两个并置子数据为一组,从初始的并置子数据起,按顺序将各并置子数据分为若干横向池化组,并在存在落单的并置子数据时,将落单的并置子数据进行延拍后,生成延拍并置子数据;将各横向池化组中的两并置子数据进行池化计算,得到每一横向池化组的计算结果;在不存在延拍并置子数据时,将各横向池化组的计算结果作为下一次数据运算操作时的各并置子数据;在存在延拍并置子数据时,将各横向池化组的计算结果以及延拍并置子数据作为下一次数据运算操作时的各并置子数据。

3.如权利要求2所述的基于FPGA的池化方法,其特征在于,根据基准数据生成在所述池化窗口尺寸下,池化窗口所需的并置数据,包括:在所述池化窗口尺寸为N*N时,从所述待池化数据的低位开始截取个字节的数据,得到若干第一数据;从所述第二延拍数据的高位开始截取个字节的数据,得到若干第二数据;根据并置数据所需的预设字节数、各第一数据的字节数、各第二数据的字节数以及第一延...

【专利技术属性】

技术研发人员:王炳松,

申请(专利权)人:上海安路信息科技股份有限公司,

类型:发明

国别省市:

全部详细技术资料下载 我是这个专利的主人


注明:本内容来源网络,不用于商业使用,禁止转载,如有侵权,请来信到邮箱:429562386ⓐqq.com 或联系本站客服处理,感谢配合!

用户登陆

    未注册用户登录后会自动为您创建账号

提交留言