tf.unstack
作用:
简单来说就是进行降维,再链接为一个可迭代的对象
Unpacks the given dimension of a rank-R
tensor into rank-(R-1)
tensors.
将R
维的tensor转换为R-1
维的tensor序列
其参数形式化的表示如下:
value : 进行操作的tensor
num : 在指定的维度上对指定数目的tensor进行操作,如不提供需要能够从value的第axis维度的shape推断出
文档中的说法是:The length of the dimension axis
.
axis : 指定进行操作的维度
以维度为(A,B,C,D)的tensor为例,axis = 2。得到的结果为长度为C的序列,output[i] = input[:, :, i, :], 每一个元素的shape为(A,B,D)
对应的np.stack
作用:将一个n
维向量序列转换成n+1
维度的单独向量
输出:在输出的第axis维上的值指示的是原序列中的index
import numpy as np
a = np.array(np.reshape(range(200)), (10,4,5))
得到一个长度为10,每个元素维度(4, 5)的序列
a = np.stack(a, axis = 2)
print(a.shape) // (4, 5, 10)
在第2个axis上对元素进行堆叠(stack)
注意体会堆叠的含义