本公开的实施例涉及数据处理,具体地,涉及一种数据处理方法、数据处理装置和存储介质。
背景技术:
1、深度卷积神经网络(deep convolutional neural networks,dcnn)是一种在计算机视觉领域中应用广泛的深度学习模型。它通过多层卷积和池化操作,能够自动地学习图像的抽象特征,并在图像分类、目标检测和语义分割等任务中取得优秀的表现。随着人工智能技术的不断发展,深度卷积神经网络将在更多领域发挥重要作用,并推动计算机视觉的进一步发展。
2、深度卷积(deep convolutional)是对每个通道单独进行卷积操作的一种卷积方式,输出的特征图的通道数与输入相同。深度卷积是组卷积的极端情况,将输入特征的每一通道分为一组,即分组数等于输入通道数。深度卷积可以通过局部感受野和权值共享来构建深度卷积神经网络。
技术实现思路
1、本公开至少一个实施例提供一种数据处理方法,用于卷积操作,所述卷积操作的卷积核的尺寸为(dw, dh),dw表示所述卷积核的列数,dh表示所述卷积核的行数,所述方法包括:从片外存储单元的m列输入数据中读取m列输入数据至寄存器中,其中,m为大于0的整数,m为大于0且小于等于m的整数,且m>= dw;对所述m列输入数据中的第i列输入数据进行卷积操作,并在所述第i列输入数据的卷积操作完成后,从所述寄存器中删除与所述第i列输入数据对应的k列输入数据,其中,i为大于0小于等于m的整数,k根据所述卷积操作的步长和单条所述卷积操作的指令所并行处理的数据尺寸确定;从所述片外存储单元中重新读取k列输入数据至所述寄存器中,并复用对所述第i列输入数据进行所述卷积操作后剩余的m-k列输入数据,对第i+1列输入数据执行所述卷积操作。
2、例如,本公开至少一实施例提供的数据处理方法,还包括:根据所述输入数据的尺寸和所述寄存器的尺寸,判断是否需要对所述输入数据进行切分,其中,所述输入数据的尺寸为(wi, hi),其中,wi表示所述输入数据的列数且wi=m,hi表示所述输入数据的行数;如果所述寄存器的尺寸大于或等于hi dw,则不需要对所述输入数据进行切分;如果所述寄存器的尺寸小于hi dw,则将所述输入数据切分为t个数据分块,以使得所述寄存器的尺寸大于或等于 (hi/t) dw,其中,所述输入数据的每个数据分块的尺寸为(wi , (hi/t));其中,t为大于1的整数。
3、例如,在本公开至少一实施例提供的数据处理方法中,在将所述输入数据切分为t个数据分块后,所述方法还包括:将所述t个数据分块中两两相邻数据分块的相邻的j行输入数据存储至缓存单元中,其中,j为大于0的整数,根据所述卷积操作的步长确定;依次对所述t个数据分块执行所述卷积操作。
4、例如,本公开至少一实施例提供的数据处理方法,还包括:当所述卷积核移动到所述第t个数据分块的上边界时,从所述缓存单元中读取所述第t个数据分块对应的上边界填充至所述寄存器;当所述卷积核移动到所述第t个数据分块的下边界时,从所述缓存单元中读取所述第t个数据分块对应的下边界填充至所述寄存器;其中,对于所述第t个数据分块,第t-1个数据分块中与所述第t个数据分块相邻的j行输入数据作为所述第t个数据分块的所述上边界填充;第t+1个数据分块中与所述第t个数据分块相邻的j行输入数据作为所述第t个数据分块的所述下边界填充,其中,t为大于1小于t的整数。
5、例如,在本公开至少一实施例提供的数据处理方法中,当对所述t个数据分块中的第t个数据分块执行卷积操作时,所述方法包括:从所述片外存储单元中读取所述第t个数据分块中的m列输入数据至所述寄存器;对所述第t个数据分块中的所述m列输入数据的第i列输入数据在列方向上执行所述卷积操作;当所述卷积核在所述列方向上移动到所述第i列输入数据的下边界时,从所述缓存单元中读取所述第t个数据分块对应的下边界填充至所述寄存器中以执行所述第i列输入数据的卷积操作;在所述第i列输入数据的卷积操作完成后,从所述寄存器中删除与所述第i列输入数据对应的k列输入数据,从所述片外存储单元中重新读取所述第t个数据分块中的k列输入数据至所述寄存器中,并复用对所述第i列输入数据进行所述卷积操作后剩余的所述m-k列输入数据,对所述第i+1列输入数据执行所述卷积操作。
6、例如,本公开至少一实施例提供的数据处理方法,还包括:当所述卷积核移动到所述第i列输入数据的上边界时,从所述缓存单元中读取所述第t个数据分块对应的上边界填充至所述寄存器中以执行所述第i列输入数据的卷积操作。
7、例如,在本公开至少一实施例提供的数据处理方法中,所述卷积操作为深度卷积操作。
8、本公开至少一实施例还提供一种数据处理装置,用于卷积操作,其中,所述卷积操作的卷积核的尺寸为(dw, dh),其中,dw表示所述卷积核的列数,dh表示所述卷积核的行数,所述装置包括:读取单元,配置为从片外存储单元的m列输入数据中读取m列输入数据至寄存器中,其中,m为大于0的整数,m为大于0且小于等于m的整数,且m> =dw;第一处理单元,配置为对所述m列输入数据中的第i列输入数据进行卷积操作,并在所述第i列输入数据的卷积操作完成后,从所述寄存器中删除与所述第i列输入数据对应的k列输入数据,其中,i为大于0小于等于m的整数,k根据所述卷积操作的步长和单条所述卷积操作指令所并行处理的数据尺寸确定;第二处理单元,配置为从所述片外存储单元中重新读取k列输入数据至所述寄存器中,并复用对所述第i列输入数据进行所述卷积操作后剩余的所述m-k列输入数据,对第i+1列输入数据执行所述卷积操作。
9、例如,本公开至少一实施例提供的数据处理装置,还包括判断单元,配置为:根据所述输入数据的尺寸和所述寄存器的尺寸,判断是否需要对所述输入数据进行切分,其中,所述输入数据的尺寸为(wi, hi),其中,wi表示所述输入数据的列数且wi=m,hi表示所述输入数据的行数;如果所述寄存器的尺寸大于或等于hi dw,则不需要对所述输入数据进行切分;如果所述寄存器的尺寸小于hi dw,则将所述输入数据切分为t个数据分块,以使得所述寄存器的尺寸大于或等于 (hi/t) dw,其中,所述输入数据的每个数据分块的尺寸为(wi , (hi/t));其中,t为大于1的整数。
10、例如,本公开至少一实施例提供的数据处理装置,还包括缓存单元,配置为:将所述t个数据分块中两两相邻数据分块的相邻的j行输入数据存储至缓存单元中,其中,j为大于0的整数,根据所述卷积操作的步长确定;依次对所述t个数据分块执行所述卷积操作。
11、例如,在本公开至少一实施例提供的数据处理装置中,所述卷积操作为深度卷积操作。
12、本公开至少一实施例还提供一种数据处理装置,包括:处理器;存储器;一个或多个计算机程序模块,其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于执行实现本公开任一实施例提供的数据处理方法的指令。
13、本公开至少一实施例还提供一种存储介质,非暂时性地存储计算机可读指令,当所述计算机可读指令由计算机执行时执行本公开任一实施例提供的数据处理方法。
1. 一种数据处理方法,用于卷积操作,其特征在于,所述卷积操作的卷积核的尺寸为(dw, dh),其中,dw表示所述卷积核的列数,dh表示所述卷积核的行数,所述方法包括:
2.根据权利要求1所述的数据处理方法,还包括:
3.根据权利要求2所述的数据处理方法,其中,在将所述输入数据切分为t个数据分块后,所述方法还包括:
4.根据权利要求3所述的数据处理方法,还包括:
5.根据权利要求3所述的数据处理方法,其中,当对所述t个数据分块中的第t个数据分块执行所述卷积操作时,所述方法包括:
6.根据权利要求5所述的数据处理方法,还包括:
7.根据权利要求1-6任一所述的数据处理方法,其中,所述卷积操作为深度卷积操作。
8. 一种数据处理装置,用于卷积操作,其特征在于,所述卷积操作的卷积核的尺寸为(dw, dh),其中,dw表示所述卷积核的列数,dh表示所述卷积核的行数,所述装置包括:
9.一种数据处理装置,其特征在于,所述数据处理装置包括:
10.一种存储介质,非暂时性地存储计算机可读指令,其特征在于,当所述计算机可读指令由计算机执行时执行根据权利要求1-7任一所述的数据处理方法。