shape的各种获取、更改以及设置方式辨析
生活随笔
收集整理的這篇文章主要介紹了
shape的各种获取、更改以及设置方式辨析
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
各種shape獲取和shape設(shè)置以及更改
1. shape獲取
- tensor.get_shape:只有tensor才有這個(gè)方法,(相對(duì)于op來說的),用于返回該 tensor的維度,返回的是一個(gè)數(shù)組。不需要在session里面使用。x.get_shape()
- tensor.shape:用法同tensor.get_shape()類似。如x.shape
- tf.shape():以列表的形式返回形狀,需要在Session里面使用
代碼示例
def test_shape():v1 = tf.placeholder(tf.float32,shape=[2,3])print(v1.get_shape()) # 輸出:(2,3)print(v1.shape) # 輸出:(2,3)print(tf.shape(v1)) # 輸出:Tensor("Shape:0", shape=(2,), dtype=int32)with tf.Session() as sess:print(sess.run(tf.shape(v1))) # 輸出:[2 3] test_shape()2. shape設(shè)置(set)以及更改(reshape)
- tensor.set_shape:如果原tensor已經(jīng)存在shape了,則不能使用該函數(shù)改變shape了;該函數(shù)只能用來設(shè)置shape(set)
- tf.reshape(tensor,shape):該函數(shù)并不改變?cè)璽ensor的shape,而是新產(chǎn)生一個(gè)tensor,并在原tensor的形狀基礎(chǔ)上重新組合形成不同的形狀。總維度數(shù)即:維度1維度2維度3*···是不變的
代碼示例
def test_reshape():v1 = tf.placeholder(tf.float32)v1.set_shape([2,3])v2 = tf.reshape(v1,[3,2]) # 這里的總維度數(shù)必須為:2*3t1 = tf.placeholder(tf.float32)t2 = tf.reshape(t1,[3,4])p1 = tf.placeholder(tf.float32,shape=[2,2])# p1.set_shape([1,4]) 如果該句不被注釋則會(huì)出錯(cuò)p2 = tf.reshape(p1,[4,1])test_reshape()參考
記錄時(shí)間
2018/9/18 20:34 第一次總結(jié)
以上是生活随笔為你收集整理的shape的各种获取、更改以及设置方式辨析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tf里面InteractivateSes
- 下一篇: 为什么L1稀疏,L2平滑?