gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 11:25:39 27 4
gpt4 key购买 nike

Tensorflow中的TensorVariable有什么区别?我在this stackoverflow answer中注意到,只要可以使用Variable,我们都可以使用Tensor。但是,我无法在session.run()上执行Variable:

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时需要提供一个初始值,但是必须调用其初始化函数才能在 session 中实际分配该值,然后使用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而不是 Tensor的原因,基本上 Variable是具有附加功能和实用程序的 Tensor。您可以将 Variable指定为可训练的(实际上是默认值),这意味着优化器将对其进行调整,以最大程度地降低成本函数;您可以指定 Variable在分布式系统上的位置;您可以轻松保存和还原 Variable和图形。可以在 here中找到有关如何使用 Variable的更多信息。

关于tensorflow - Tensorflow中的Tensor和Variable有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44167134/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com