stack and unstack

来源:互联网 发布:javascript获取class 编辑:程序博客网 时间:2024/05/17 07:13

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 npa = 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)
注意体会堆叠的含义