Tensorflow中Session是什么

翻譯自:What is a TensorFlow Session?

好多人搞不清楚tf.Graph 與tf.Session ,這很簡單(原文是 It's simple :p ):

  • Graph定義了計算。 它不計算任何值,它不包含任何值,它是代碼中定義的指定操作。
  • Session允許執(zhí)行Graph或Graph的一部分。 它分配資源(在一臺或多臺機器上),并保存中間結果和變量的實際值。
    我們來看一個例子。

定義Graph

我們定義一個帶有變量和三個操作的圖:變量總是返回我們變量的當前值。 initialize將初始值42賦給該變量。 assign將新值為13賦給該變量。

graph = tf.Graph()
with graph.as_default():
    variable = tf.Variable(42, name='foo')
    initialize = tf.initialize_all_variables()
    assign = variable.assign(13)

注:Tensorflow會被幫我們創(chuàng)建一個默認的Graph,前兩行的代碼可以省略。

在Session中運行計算

要運行剛才定義的三個操作中的任何一個,我們需要為Graph創(chuàng)建一個Session。 Session還將分配內(nèi)存來存儲變量的當前值。

with tf.Session(graph=graph) as sess:
  sess.run(initialize)
  sess.run(assign)
  print(sess.run(variable))
# Output: 13

變量的值僅在一個會話中有效, 如果我們嘗試在第二個會話中查詢該值,TensorFlow將引發(fā)一個錯誤,因為該變量沒有在那里初始化。

with tf.Session(graph=graph) as sess:
  print(sess.run(variable))
# Error: Attempting to use uninitialized value foo

當然,我們可以在多個Session中使用圖表,我們只需要重新初始化變量。 新的Session中的值將與第一個完全獨立:

with tf.Session(graph=graph) as sess:
  sess.run(initialize)
  print(sess.run(variable))
# Output: 42
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 兒童有些他們對世界的理解,但是這些與嚴格意義上的科學理論有區(qū)別,這僅僅是一種樸素理論。例如兒童對力和運動的迷思概...
    小潘老師搞教育閱讀 1,427評論 0 22
  • 旅行的目的是什么,打算停留多久 拜托,一聲又一聲,無措和茫然 穿著睡衣在機場隨意走動 尋找生存之道 那是家,我不害...
    停留在過去的未來閱讀 600評論 0 0
  • 之前很火的一篇文章《寒門再難出貴子》講述了一群重點大學畢業(yè)生,被安排到銀行實習,在實習過程中來自不同家庭背景的孩子...
    竹夕顏閱讀 943評論 2 2

友情鏈接更多精彩內(nèi)容