Tensorflow中的Tensor和Variable有什么区别
tensorflow
5
0

什么之间的区别TensorVariable在Tensorflow?我在这个stackoverflow答案中注意到,只要可以使用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.
参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

Variable基本上是Tensor上的包装器,可在多个run调用之间维护状态,我认为通过保存和恢复图可以使某些事情变得更容易。必须先初始化变量,然后才能运行它。在定义变量时,您需要提供一个初始值,但是必须调用其初始化函数才能在会话中实际分配该值,然后使用变量。一种常见的实现方法是使用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)

至于为什么使用变量而不是张量,基本上变量就是具有附加功能和实用程序的张量。您可以将变量指定为可训练的(实际上是默认值),这意味着优化器将对其进行调整,以最大程度地降低成本函数。您可以指定变量在分布式系统上的位置;您可以轻松地保存和恢复变量和图形。有关如何使用变量的更多信息,请参见此处

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号