tensorflow基本语法理解

最近在看RNN时,对tf.unpack()维度变化不了解,经过试验大致了解了维度的变化

构造三维数据分布如下图所示:

这里写图片描述

情况一:

import tensorflow as tf
a = tf.constant([[[1,1,1],[1,1,1]],
                [[2,2,2],[2,2,2]],
                [[3,3,3],[3,3,3]],
                [[4,4,4],[4,4,4]],
                [[5,5,5],[5,5,5]]])
d = tf.unstack(a,5,axis=0)
with tf.Session() as sess:
        #print(sess.run(c))
        print(sess.run(d))
        #print(sess.run(e))

结果

相当于用五个平面切割z轴,会得到5个平面
[array([[1, 1, 1],
[1, 1, 1]], dtype=int32), array([[2, 2, 2],
[2, 2, 2]], dtype=int32), array([[3, 3, 3],
[3, 3, 3]], dtype=int32), array([[4, 4, 4],
[4, 4, 4]], dtype=int32), array([[5, 5, 5],
[5, 5, 5]], dtype=int32)]

情况二:

import tensorflow as tf
a = tf.constant([[[1,1,1],[1,1,1]],
                [[2,2,2],[2,2,2]],
                [[3,3,3],[3,3,3]],
                [[4,4,4],[4,4,4]],
                [[5,5,5],[5,5,5]]])
d = tf.unstack(a,2,axis=1)
with tf.Session() as sess:
        #print(sess.run(c))
        print(sess.run(d))
        #print(sess.run(e))

结果:

相当于用两个平面切割x轴,会得到2个平面
[array([[1, 1, 1],
[2, 2, 2],
[3, 3, 3],
[4, 4, 4],
[5, 5, 5]], dtype=int32), array([[1, 1, 1],
[2, 2, 2],
[3, 3, 3],
[4, 4, 4],
[5, 5, 5]], dtype=int32)]

情况三:

import tensorflow as tf
a = tf.constant([[[1,1,1],[1,1,1]],
                [[2,2,2],[2,2,2]],
                [[3,3,3],[3,3,3]],
                [[4,4,4],[4,4,4]],
                [[5,5,5],[5,5,5]]])
d = tf.unstack(a,3,axis=2)
with tf.Session() as sess:
        #print(sess.run(c))
        print(sess.run(d))
        #print(sess.run(e))

结果:

相当于用三个平面切割x轴,会得到3个平面
[array([[1, 1],
[2, 2],
[3, 3],
[4, 4],
[5, 5]], dtype=int32), array([[1, 1],
[2, 2],
[3, 3],
[4, 4],
[5, 5]], dtype=int32), array([[1, 1],
[2, 2],
[3, 3],
[4, 4],
[5, 5]], dtype=int32)]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值