【Tensorflow】技巧(1):tf.shape和get_shape()的区别

本文通过实例对比了TensorFlow中tf.shape和get_shape()的功能。tf.shape返回的是一个tensor,需要通过sess.run()获取具体值;而get_shape()直接返回一个tuple,无法放入sess.run()中运行。

tensorflow中的tf.shape和get_shape()都可以用来获取尺寸,那两者的区别是什么呢?先看下面一段代码:

<span style="color:#6633ff">import tensorflow as tf
 
a = tf.constant([[1, 2, 3, 4], [5, 6, 7, 8]])
 
with tf.Session() as sess:
    a_shape = tf.shape(a)
    a_getshape = a.get_shape()
    print(a_shape)
    print(a_getshape)</span>
输出:

可以看到,tf.shape(a)的输出是一个tensor,而,a.get_shape()的输出却是一个元组tuple。

二、

而要获得tensor的值,需要将其放在sess.run()中,再看:

<span style="color:#6633ff">print(sess.run(a_shape))
    print(sess.run(a_shape[0]))
    print(sess.run(a_shape[1]))</span>
输出:

相反,tuple的值不能放在sess.run()中,否则会报错。

<span style="color:#6633ff">print(a_getshape[0])
    print(a_getshape[1])</span>
输出:


--------------------- 
作者:heiheiya 
来源:优快云 
原文:https://blog.youkuaiyun.com/heiheiya/article/details/80729133 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值