阅读(4294) (11)

TensorFlow函数:tf.parallel_stack

2017-11-08 11:49:18 更新
tf.parallel_stack 函数
parallel_stack ( 
    values , 
    name = 'parallel_stack' 
)

定义在:tensorflow/python/ops/array_ops.py.

参见指南:张量变换>分割和连接

将 rank-R张量列表堆叠为一个 rank-(R+1)张量平行.

要求在图形构建时知道输入的形状.

将 values 中的张量打包成一个张量,其值比每个张量的秩高一个.通过将它们沿第一维进行封装.给定一个张量的形状为 (A, B, C)的 长度为 N 的列表;则 output 张量将有形状 (N, A, B, C).

例如:

# 'x' is [1, 4]
# 'y' is [2, 5]
# 'z' is [3, 6]
parallel_stack([x, y, z])  # => [[1, 4], [2, 5], [3, 6]]

stack 和 parallel_stack 之间的区别是 stack 需要在操作开始之前计算所有输入,但并不要求输入的形状在图构造中是已知的.

parallel_stack 会将输入的片段复制到输出中,在某些情况下,这可以提供性能优势.

与 stack 不同,parallel_stack 不支持反向传播.

这与 unpack 相反,这个 numpy 等价物是:

tf.parallel_stack([x, y, z]) = np.asarray([x, y, z])

参数:

  • values:具有相同形状和类型的张量对象的列表.
  • name:此操作的名称(可选).

返回:

  • output:与值具有相同类型的堆积张量.