2017-10-12 59 views
1

有好幾次我看到了下面的語句:從圖中現有變量在TensorFlow中「變量」是什麼意思?

究竟是什麼意思

tf.get_variable得到?如果一個變量已經存在,爲什麼我不能通過調用它的名字來重用它(或者「得到它」)。例如,我有一個變量x,所以我只是在任何需要它的地方使用這個變量。爲什麼我應該使用get_variable來「獲取」它(不管它的意思)?

+0

你用過'logging'模塊嗎?例如,我有一個記錄器'logger',所以我只需要在任何需要它的地方使用這個變量。但是我也可以使用'logging.getLogger(logger_name)'在多個名稱範圍內獲得'logger'。 – Sraw

+1

如果你還沒有,請看看[TensorFlow變量指南](https://www.tensorflow.org/programmers_guide/variables)。 'get_variable'可以根據上下文創建或重用變量,它可以(和'variable_scope'一起)編寫創建具有可預測變量名稱的子圖的函數(請參閱指南中的「共享變量」部分)。 – jdehesa

回答

0

如果一個變量已經存在,爲什麼我不能通過調用它的名稱來重新使用它(或「得到它」)。

您可以並且通常在整個模型在一個文件中時完成。但是,這個大型模型可能會被分成不同的源文件和庫。在這種情況下,tf.get_variable只是convenient:「tf.get_variable還允許您重新使用先前創建的同名變量,從而輕鬆定義重複​​使用圖層的模型」。

外的現成層和功能tensorflow經常與tf.get_variable定義他們的變量,例如tf.contrib.crf.crf_log_likelihoodsource code),其允許客戶端通過一transitions矩陣即使crf_log_likelihood調用是在另一模塊中或甚至在第三方代碼。

如評論中已經提到的,共享的可能性是另一種用例,因此在圖層中深入地編寫tf.get_variable是邁向更好組合性的一步。

相關問題