Deep learning和tensorflow学习记录(二十三):tf.unstack

tf.unstack(
    value,
    num=None,
    axis=0,
    name='unstack'

)

定义于:tensorflow/python/ops/array_ops.py。

将秩为R的给定维度的tensor的分解为秩为(R-1)的tensor。

通过沿axis维度切割来从value分解num个tensors。如果num未指定(默认值),则从value的形状推断出。如果

value.shape[axis]不知道,则抛出ValueError。

例如,给定一个tensor的形状是(A, B, C, D);如果axis == 0,那么output的第i个tensor是切片 value[i, :, :, :],并且output的每个tensor都将具有形状(B, C, D)。(注意,分解的尺寸已经消失,不像split)。

如果axis == 1,那么output的第i个tensor是切片 value[:, i, :, :],并且output的每个tensor都将具有形状(A, C, D)。这与stack相反。参数:

value:R > 0 的Tensor。

num:一个int。axis尺寸的长度。如果为None则自动推断(默认值)。

axis:一个int。指定要被分解的轴。默认为第一个维度。有效范围是[-R, R)。

name:操作的名称(可选)。

返回:从value分解的tensor对象列表。

import tensorflow as tf

A = [[1, 2, 3], [4, 5, 6]]
a1 = tf.unstack(A, num=3,axis=1)
a2 = tf.unstack(A, num=2,axis=0)
with tf.Session() as sess:
    print(sess.run(a1))
    print(sess.run(a2))

输出:

[array([1, 4]), array([2, 5]), array([3, 6])] 

[array([1, 2, 3]), array([4, 5, 6])]
 
 

猜你喜欢

转载自blog.csdn.net/heiheiya/article/details/81064128
今日推荐