【问题标题】:How to reset a variable in tensorflow?如何重置张量流中的变量?
【发布时间】:2018-08-14 14:50:27
【问题描述】:

我想执行一个图表,更改单个变量的值,然后使用任何下游变量吸收的更改再次执行该图表。例如,

A = tf.distributions.Normal(0.0, 1.0)
B = tf.distributions.Normal(0.0, 1.0)

a = A.get_variable(name="a", initializer=A.sample)
b = B.get_variable(name="b", initializer=B.sample)

C = tf.distributions.Normal(a + b, 1.0)

c = C.get_variable(name="c", initializer=C.sample)

所以,如果我运行这个图表,

session.run(tf.global_variables_initializer())

with tf.Session() as session:
    session.run([a, b, c])

我得到一组 a、b 和 c 的值。然后说,我要重新初始化b,

    session.run(b.initializer)
    session.run([a, b, c])

这将重新初始化 b 的值,但该更改不会传播到 c。由于 b 已经改变,并且 c 依赖于 b(通过 C),我希望 c 被重新初始化。

这在张量流中可能吗?

【问题讨论】:

    标签: python variables tensorflow initializer


    【解决方案1】:

    c 不依赖于b,它的初始化器依赖。实际上,tensorflow中的变量不能依赖于其他变量。重新初始化b 后,c 的值不会改变。但是,如果您再次运行 c 初始化程序,它将获取新值。所以简单地做:

    session.run(b.initializer)
    session.run(c.initializer)
    

    【讨论】:

    • 变量为什么不能依赖其他变量?
    • 不。它们可以独立更改,这就是为什么它们是变量
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 2021-07-03
    • 1970-01-01
    • 2018-07-27
    • 2017-07-31
    相关资源
    最近更新 更多