Python Numpy填充4D阵列的速度很慢

Python Numpy填充4D阵列的速度很慢,python,arrays,performance,numpy,Python,Arrays,Performance,Numpy,我正在尝试填充一个4D numpy阵列。该阵列只是三维阵列的集合,例如,其大小可以解释为(样本、高度、宽度、深度)。填充前的数组大小为(1682160,21200,3)。我想将这个数组中的行每边填充10个像素,因此我的最终填充数组大小将是(1682160,21220,3)。我目前使用numpy pad功能的方式如下: matrix = np.pad(matrix, ((0, 0), (0, 0), (10, 10), (0,0)), mode='reflect') 我将填充数组矩阵重写为同一个

我正在尝试填充一个4D numpy阵列。该阵列只是三维阵列的集合,例如,其大小可以解释为(样本、高度、宽度、深度)。填充前的数组大小为(1682160,21200,3)。我想将这个数组中的行每边填充10个像素,因此我的最终填充数组大小将是(1682160,21220,3)。我目前使用numpy pad功能的方式如下:

matrix = np.pad(matrix, ((0, 0), (0, 0), (10, 10), (0,0)), mode='reflect')
我将填充数组
矩阵
重写为同一个变量,因为它是float16数据类型,大小约为40GB。写入新矩阵会导致内存错误。上述命令的执行时间约为700秒


我想知道是否有一种更快的方法可以在python中实现这一点,也许是以矢量化的方式?

您会在任何时候将此数组拆分为小批量吗?也许填充小批量而不是一次完成全部工作会有所帮助?谢谢你的建议。是的,看起来填充操作的执行大小是非线性的。现在,将其分为两半将导致总共250秒的执行时间。现在,我必须找出如何将下一步(神经网络拟合)对这两部分进行并行化,因为如果我串行地进行,将比填充整个矩阵花费更长的时间。