1.一种基于软硬件协同加速的神经网络推断方法,所述神经网络包括输入层、n层卷积层、n层池化层、k层全连接层和输出层,其中n和k均为正整数,且n≥k;
第i层池化层的输入信号是第i层卷积层的输出信号,其输出信号是第i+1层卷积层的输入信号,第1层卷积层的输入信号是输入层的输出信号,i∈[1,n];
第j层全连接层的输入信号是第j-1层全连接层的输出信号,j∈[2,k];第1层全连接层的输入信号是第n层池化层的输出信号,第k层全连接层的输出信号是输出层的输入信号;
其特征在于,所述软硬件协同加速方法包括如下步骤:
步骤一、搭建所述神经网络所需的卷积运算模块、池化运算模块和全连接运算模块并进行配置;
步骤二、利用所述步骤一搭建的所述卷积运算模块、池化运算模块和全连接运算模块搭建神经网络推断系统的硬件系统;
步骤三、训练所述神经网络,将训练好的所述神经网络的参数和输入数据存入所述神经网络推断系统中进行初始化;
步骤四、所述神经网络推断系统开始工作,在每一个大工作周期中所述神经网络同时处理2个输入数据;设定一个大工作周期中有2n个小工作周期,在每一个大工作周期的第1个小工作周期开始时将第一输入信号输入到所述神经网络的第一层卷积层,在每一个大工作周期的第2个小工作周期开始时将第二输入信号输入到所述神经网络的第一层卷积层,每个小工作周期所述神经网络完成一层运算并将运算结果输入到下一层;所述第一输入信号和第二输入信号依次经过所述神经网络的每一层运算后获得所述第一输入信号和第二输入信号的推断结果。
2.根据权利要求1所述的基于软硬件协同加速的神经网络推断方法,其特征在于,所述步骤一中在现场可编程逻辑门阵列中搭建所述神经网络所需的卷积运算模块、池化运算模块和全连接运算模块,配置各个模块内部的寄存器,设定每个模块的特征输入、权重和偏置,调整卷积、池化和全连接运算的规模大小。
3.根据权利要求2所述的基于软硬件协同加速的神经网络推断方法,其特征在于,所述步骤二中在片上系统异构平台上搭建所述神经网络推断系统的硬件系统,所述上系统异构平台包括现场可编程逻辑门阵列和处理器。
4.根据权利要求3所述的基于软硬件协同加速的神经网络推断方法,其特征在于,所述步骤三中在图形处理器中训练所述神经网络并将训练好的所述神经网络的参数和输入数据存入外部存储设备中,利用所述处理器将所述外部存储设备中存储的数据存入所述神经网络推断系统的存储器中。