说明:np ----> numpy tf ----> tensorflownp.stack(arrays, axis=0)数组
np.stack(arrays, axis=0) ---- 一样也适用于tf.stack()函数
numpy 和 tensorflow 都有 stack() 函数,该函数主要是用来提高维度。spa
在只提供数组(张量)和axis参数的前提下, 二者的使用方法和结果同样,原理同样,因此这里用numpy作演示。3d
假设要转变的张量数组arrays的长度为N,其中的每一个张量数组的形状为(A, B, C)。blog
若是轴axis=0,则转变后的张量的形状为(N, A, B, C)。索引
若是轴axis=1,则转变后的张量的形状为(A, N, B, C)。原理
若是轴axis=2,则转变后的张量的形状为(A, B, N, C)。其它状况依次类推。tensorflow
例如:numpy
np.stack(arrays, axis=0)则表示arrays[0], arrays[1], arrays[2]进行堆叠,因此结果与原始数组同样。
np.stack(arrays, axis=1)则表示arrays[0][0], arrays[1][0]和arrays[2][0]进行堆叠,而后是arrays[0][1],arrays[1][1]与arrays[2][1]进行堆叠。
np.stack(arrays, axis=2)则表示arrays[0][0][0],arrays[1][0][0]和arrays[2][0][0]进行堆叠,而后是arrays[0][0][1],arrays[1][0][1]与arrays[2][0][1]进行堆叠,接着为arrays[0][0][2],arrays[1][0][2]与arrays[2][0][2]进行堆叠...... 方法
图例说明:
注:转化后的索引看上面蓝色和绿色的线。
到这里就是我所有的理解,若有错误,欢迎指出。