tensorflow的會話(session)用來執行定義好的運算。
會話擁有並管理tensorflow程式執行時的所有資源。
當所有計算完成後要關閉會話來幫助系統**資源,否則可能出現資源洩露的問題。
tensorflow中的會話的使用模式有兩種:
(1)第一種模式需要明確呼叫會話生成函式和關閉會話函數。
**流程:
import tensorflow as tf
#建立乙個會話
sess = tf.session(
)#使用這個建立好的會話來得到關心的運算的結果。
#比如呼叫sess.run(result)來得到張量result的取值。
sess.run(..
.)#關閉會話,使得本次執行中使用到的資源可以被釋放
sess.close(
)
注意:這種模式下,當程式異常退出時,關閉會話的函式可能不會被執行而導致資源洩露。
(2)第二種模式是通過python的上下文管理器來使用會話。
**流程:
#建立乙個會話,並通過python中的上下文管理器來管理這個會話
with tf.session(
)as sess:
#使用這個建立好的會話來得到關心的運算的結果。
sess.run(..
.)#不需要再呼叫「session.close()」函式來關閉會話
#當上下文退出時會話關閉和資源釋放也自動完成了
tensorflow對於預設的會話(like前面會生成預設的計算圖)需要手動指定。
當預設的會話被指定後,可以通過tf.tensor.eval函式來計算乙個張量的取值。
示例:
sess = tf.session(
)with sess.as_default():
print
(result.
eval()
)#下面兩個命令有相同的功能
print
(sess.run(result)
)print
(result.
eval
(session=sess)
)
onnx模型轉tensorflow模型
onnx是開源神經網路交換平台,有了它基本上不用糾結用什麼深度學習框架的問題了。我現在記錄一下怎麼將onnx模型轉換成tensorflow模型。1 安裝tensorflow和onnx 我是通過anaconda安裝的。詳情 這個部落格記載了安裝anaconda和onnx的詳情,安裝好anaconda後...
TensorFlow模型恢復報錯
錯誤資訊attempting to use uninitialized value input producer input producer limit epochs epochs今天在模型恢復的時候出現上圖報錯資訊,最後發現是由於呼叫tf.train.slice input producer方法...
tensorflow之模型壓縮
本文 tensorflow的模型在移動端執行時往往需要進行模型壓縮。這主要有於兩方面的原因 tensorflow的模型在訓練的過程中可能為了訓練會新增一些操作和節點,而tensorflow的移動端只專注於推理,這樣在執行時就會產生一些核心不存在的錯誤。所以此時需要通過壓縮來減少一些和輸入及輸出不相關...