1.一种针对神经网络的卷积存储方法,其特征在于,该方法的步骤具体如下:
1)当卷积神经网络的输入数据大小为m×m,卷积核的大小为n×n,拼接个数为c,c≥n,c=s×x,s为卷积核步长,x为自定义值,根据卷积核在取出的拼接数据上的移动次数确定;
根据拼接个数c对输入数据矩阵进行行填充或列填充,在输入矩阵下方增加若干行0或右侧增加若干列0,进行行填充后矩阵大小为m’×m,进行列填充后矩阵大小为m×m’,m’为c的整数倍;
2)将填充的输入数据按照拼接个数c进行拼接,拼接方式按照填充方式确定为行拼接或列拼接;行拼接时,每列的c行拼接成一组数据分别放到对应地址中,行拼接后矩阵尺寸为m’/c×m;列拼接时,每行的c列拼接成一组数据分别放到对应地址中,列拼接后矩阵尺寸为m×m’/c;
3)将拼接后的每一组数据分别存入到存储器的m’/c×m或m×m’/c个地址中;
4)选择用双口RAM中两读/两写模式,进行卷积运算时取相邻两个地址中的两组拼接数据,即两组相邻的数据;
5)让拼接后的卷积核按照步长移动在取出的两组拼接数据上移动,移动的次数为x,进行卷积运算,得出卷积结果;按照步骤4)再取出相邻的两组拼接数据让拼接后的卷积核按照步长移动,进行卷积运算,得出卷积结果与前一次的结果相加;
6)重复步骤5),依次对所有拼接数据进行卷积,将卷积后的结果相加,得出最后的卷积结果。