Tensorflow:基本原理、數據類型及編碼、轉換

基本原理

在TensorFlow中,所有的操作只有當你執行,或者另一個操作依賴於它的輸出時纔會運行。

運行op

構建圖時不需要顯示聲明變量名,如

tf.concat(axis=1, values=initial_state, name="initial_state")

直接使用圖中的name就可以運行了。

initial_state = sess.run(fetches="lstm/initial_state:0",
                         feed_dict={"case_feed:0": case_feature})

 

tensorflow會話

TensorFlow會自動生成一個默認的計算圖,如果沒有特殊指定,運算會自動加入這個計算圖中。TensorFlow中的會話也有類似的機制,但是TensorFlow不會自動生成默認的會話,而是需要手動指定。

       tf.Session()創建一個會話,當上下文管理器退出時會話關閉和資源釋放自動完成。

       tf.Session().as_default()創建一個默認會話,當上下文管理器退出時會話沒有關閉,還可以通過調用會話進行run()和eval()操作。

import tensorflow as tf

a = tf.constant([[3, 2, 7],
                 [2, 9, 8]])
print(a)
with tf.Session() as sess:
    print(sess.run(a))
    # print(a.eval()) #或者這樣

輸出:

Tensor("Const:0", shape=(2, 3), dtype=int32)
[[3 2 7]
 [2 9 8]]

Note: 直接print只會打印tensor信息,是沒有數值的。參考[Tensorflow:輸入輸出]

import tensorflow as tf
a = tf.constant(1.0)
b = tf.constant(2.0)
with tf.Session().as_default() as sess:
   print(a.eval())   
print(b.eval(session=sess))
1.0
2.0

-柚子皮-

 

 

tensorflow數據類型及轉換

tf.string類型

        tf.string 張量可以保存不同長度的字節串,因爲字節串被視爲原子單位。字符串長度不包括在張量尺寸中。即不管用py2還是py3,tf中的str都是bytes類型,有編碼的。

        編碼轉換參考[TensorFlow支持Unicode,中文NLP終於省心了]

        不過建議還是直接用bytes,不要變成unicode了,在tf內部還是會轉成bytes。

其它數據類型及轉換參考:

[TensorFlow 數據類型轉換]

from: -柚子皮-

ref:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章