TensorFlow-理解tf.unstack(value, num=None, axis=0, name="unstack")

2019/7/24 14:03:32 人评论 次浏览 分类:学习教程

tf.unstack在循环神经网络的搭建中出现过,这里记录下方便自己记忆

功能:将输入value按照指定axis(维度)拆分(从0开始),输出含有num个元素的列表,num必须和指定维度内元素的个数相等,当然可以忽略不写这个参数

举个例子,如果value.shape为(2,3,4),
如果axis=0,那么num就必须填2,变换后list有2个元素,元素的shape为(3,4)
如果axis=1,那么num就必须填3,变换后list有3个元素,元素的shape为(2,4)
如果axis=2,那么num就必须填4,变换后list有4个元素,元素的shape为(2,3)

import tensorflow as tf
import numpy as np

X = tf.constant(np.array(range(24)).reshape(2, 3, 4))

X0 = tf.unstack(X, 2, 0)
X1 = tf.unstack(X, 3, 1)
X2 = tf.unstack(X, 4, 2)

with tf.Session() as sess:
    results = sess.run([X, X0, X1, X2])
    for t, x in zip([X, X0, X1, X2], results):
        print(t, '\n', x, '\n')

将输出手动美化后的结果如下,依次是X,X0,X1,X2

Tensor("Const:0", shape=(2, 3, 4), dtype=int64) 
 [[[ 0  1  2  3]
   [ 4  5  6  7]
   [ 8  9 10 11]]
   
  [[12 13 14 15]
   [16 17 18 19]
   [20 21 22 23]]] 

[<tf.Tensor 'unstack:0' shape=(3, 4) dtype=int64>, 
 <tf.Tensor 'unstack:1' shape=(3, 4) dtype=int64>] 
[array([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]]), 
 array([[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]])] 

[<tf.Tensor 'unstack_1:0' shape=(2, 4) dtype=int64>, 
 <tf.Tensor 'unstack_1:1' shape=(2, 4) dtype=int64>, 
 <tf.Tensor 'unstack_1:2' shape=(2, 4) dtype=int64>] 
[array([[ 0,  1,  2,  3],
        [12, 13, 14, 15]]), 
 array([[ 4,  5,  6,  7],
        [16, 17, 18, 19]]), 
 array([[ 8,  9, 10, 11],
        [20, 21, 22, 23]])] 

[<tf.Tensor 'unstack_2:0' shape=(2, 3) dtype=int64>, 
 <tf.Tensor 'unstack_2:1' shape=(2, 3) dtype=int64>, 
 <tf.Tensor 'unstack_2:2' shape=(2, 3) dtype=int64>, 
 <tf.Tensor 'unstack_2:3' shape=(2, 3) dtype=int64>] 
[array([[ 0,  4,  8],
        [12, 16, 20]]), 
 array([[ 1,  5,  9],
        [13, 17, 21]]), 
 array([[ 2,  6, 10],
        [14, 18, 22]]), 
 array([[ 3,  7, 11],
        [15, 19, 23]])] 

相关资讯

  • 那些我们不愿意承认的事

    很久没有见的老朋友,准确的说应该是很久没有见过的老师,一个比我大两岁的老师,我上初中的时候他从高中回来教我了一年。后来又回去上高中,我上高中的时候他上大学,现在我刚大学毕业他创办了公司。昨日一见依然如故,他还是热爱销售,而我却成了纯粹的技术人员。 看到他…

    2015/6/22 13:12:47

学习教程

共有访客发表了评论 网友评论

验证码: 看不清楚?

    立即查看