簡體   English   中英

Tensorflow中的Tensor和Variable有什么區別

[英]What's the difference between Tensor and Variable in Tensorflow

Tensorflow 中的TensorVariable什么區別? 我在這個 stackoverflow answer 中注意到,我們可以在任何可以使用Tensor地方使用Variable 但是,我未能對Variable執行session.run()

A = tf.zeros([10])   # A is a Tensor
B = tf.Variable([111, 11, 11]) # B is a Variable
sess.run(A) # OK. Will return the values in A
sess.run(B) # Error.

Variable基本上是Tensor一個包裝器,它在多次調用run維護狀態,我認為通過保存和恢復圖形可以使一些事情變得更容易。 Variable需要先初始化,然后才能運行。 您在定義Variable時提供了一個初始值,但您必須調用它的初始化函數才能在會話中實際分配此值,然后使用Variable 一種常見的方法是使用tf.global_variables_initalizer()

例如:

import tensorflow as tf
test_var = tf.Variable([111, 11, 1])
sess = tf.Session()
sess.run(test_var)

# Error!

sess.run(tf.global_variables_initializer())  # initialize variables
sess.run(test_var)
# array([111, 11, 1], dtype=int32)

至於為什么你使用Variable s 而不是Tensor s,基本上一個Variable是一個具有額外功能和效用的Tensor 您可以將Variable指定為可訓練的(實際上是默認值),這意味着您的優化器將對其進行調整以盡量減少您的成本函數; 您可以指定Variable在分布式系統上的位置; 您可以輕松保存和恢復Variable和圖形。 可以在此處找到有關如何使用Variable的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM