np.stack() 与 tf.stack() 的简单理解

说明:np ----> numpy       tf ----> tensorflownp.stack(arraysaxis=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]进行堆叠...... 方法

图例说明:

注:转化后的索引看上面蓝色和绿色的线。

 

到这里就是我所有的理解,若有错误,欢迎指出。

相关文章
相关标签/搜索