我需要能够绘制成本函数值作为某个参数的函数(例如,下面的偏差b )。如果我的图形类似于(伪码)
y = g(W x + b),
cost = sum(y ** 2),如果W和b是tf.Variables,我想将b从0更改为1,并绘制cost的值。
请注意,在b 的每次更改之后,我不想调用或sesssion.run,因为开销!,例如,100个地块点,这将花费很长的时间。
tf.assign的存在,但是做一些像分配,成本,分配,成本,.对此进行评估似乎不管用b的值和调用成本,但是我并不想真正地更改这个图那么,我如何能以有效的方式做到这一点呢?提前谢谢你!
编辑:实际上,如果没有在迭代之间调用eval/run,这可能是不可能的.哦好吧..。
发布于 2017-04-06 14:36:39
在张量流中,如果使用变量,则只能在初始化后才能计算它们。因此,您可能无法在没有会话的情况下对它们进行评估。但是,您可以更改参数,如下所示
import tensorflow as tf
my_var = tf.Variable(10)
with tf.Session() as sess:
sess.run(my_var.initializer)
print(sess.run(my_var.assign_sub(2))) #>> 8
print(sess.run(my_var.assign_sub(2))) #>> 6发布于 2017-04-08 05:22:36
这听起来像是在每个步骤中为提供不同值的用例。假设b是一个标量变量,您可以使用如下代码编写循环代码:
import numpy as np
sess = tf.Session()
# Vary `b_val` from 0 to 1 in 100 steps.
for b_val in np.linspace(0, 1, 100):
# Evaluate `cost` using `b = b_val`.
cost_val = sess.run(cost, feed_dict={b: b_val})
# Do something with `cost_val`....https://stackoverflow.com/questions/43249643
复制相似问题