在numpy中,我可以用numpy.copy創建變量的副本。有沒有類似的方法,我可以用它來創建TensorFlow中張量的副本?如何複製張量流中的變量
回答
您可以通過幾種方法來實現。
- 這將創建你的副本:
v2 = tf.Variable(v1)
- 你也可以使用identity op:
v2 = tf.identity(v1)
(我認爲這是做這件事的正確方法
這裏是一個代碼示例:
import tensorflow as tf
v1 = tf.Variable([[1, 2], [3, 4]])
v_copy1 = tf.Variable(v1)
v_copy2 = tf.identity(v1)
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
a, b = sess.run([v_copy1, v_copy2])
sess.close()
print a
print b
兩者都會打印出相同的張量
該執行深拷貝
copied_variable = tf.Variable(source_variable.initialized_value())
它還處理intialization正確,即
tf.intialize_all_variables()
將正確初始化source_variable,然後再複製值copied_variable
仍在等待您的示例:http://stackoverflow.com/a/33717784/1090562 –
你問如何複製標題中的變量,但如何複製問題中的張量。讓我們看看不同的可能答案。
(1)你想創建一個張量具有當前存儲在變量,我們會打電話給var
相同的值。
tensor = tf.identity(var)
但要記住,「張」是評估時將有值的圖節點,您評估它的任何時候,它會搶的var
的當前值。您可以使用control flow ops such as with_dependencies()
來查看變量更新的順序以及身份的時間。
(2)你想創建另一個變量和其值設置爲當前存儲在一個變量中的值:
import tensorflow as tf
var = tf.Variable(0.9)
var2 = tf.Variable(0.0)
copy_first_variable = var2.assign(var)
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
print sess.run(var2)
sess.run(copy_first_variable)
print sess.run(var2)
(3)要定義一個變量和它的初始值設定爲相同的事情你已經初始化的變量(這是nivwu ..上述回答):
var2 = tf.Variable(var.initialized_value())
var2
當你調用tf.initialize_all_variables
會得到初始化。在已經初始化圖形並開始運行之後,您不能使用它來複制var。
'with_dependencies()'更改,請參閱:http://stackoverflow.com/questions/37980078/tensorflow-has-no-attribute-依賴關係 –
@dga關於你的觀點(1),只是沿tensor = tf.constant(var)的方式創建一個常數張量,這樣副本不會依賴於var嗎? – Alex
- 1. 張量流中的圖間複製:會話和變量
- 2. 如何在張量流中改變三維張量的尺寸?
- 3. 如何在張量流中製作張量柱的直方圖
- 4. 如何加入張量流中的張量張量?
- 5. 如何初始化張量流中的變量C API
- 6. 如何區分相對於張量流中的輸入變量
- 7. 如何僅重用張量流中的一些變量?
- 8. PIL圖像張量張量,張量流
- 9. 改變張量流中的張量的尺度
- 10. 比較張量(張量流)
- 11. 如何檢測張量流中哪個變量是'nonetype'
- 12. 如何在張量流中設置變量佔位符形狀?
- 13. 如何爲張量流中的張量子集賦值?
- 14. 在張量流中,如何將張量的行重置爲零?
- 15. 如何在張量流中使用張量的動態形狀
- 16. 如何計算張量流中張量的形狀
- 17. 如何替換張量流中張量的維數?
- 18. 如何解釋張量流中的張量圖?
- 19. 張量流量可變範圍:
- 20. 總結張量流量張量列表
- 21. 如何計算張量流量損失?
- 22. 張量如何在CIFAR10教程中保存張量流?
- 23. 如何在張量流中調整張量?
- 24. 如何在張量流中實現RGB圖像張量?
- 25. 如何在張量流中採樣圖像張量
- 26. 如何在張量流中打印張量形狀?
- 27. 如何過濾基於帶索引張量的張量流張量?
- 28. 如何理解張量流形張量板的直方圖?
- 29. 如何將張量列表作爲張量流圖的輸入?
- 30. 如何複製ruby變量?
如果我們想要淺層或深層複製,則沒有指定。我認爲假設它涉及深層複製更安全。在這種情況下tf.Variable(source_variable.initialized_value()) – siemanko
@nivwusquorum你可以告訴我身份何時會失敗的例子嗎? –
deepq學習需要q網絡的深層副本來代替目標網絡,例如.. – siemanko