我对tensorflow相当新,试图计算二次函数的argmin。我希望在每次迭代后看到x和y的值。代码:
import tensorflow as tf
x = tf.Variable(1.0,name="x")
y = x**2 - 4*x + 3
alpha = 0.05
optimizer = tf.train.AdamOptimizer(learning_rate = alpha).minimize(y)
num_epochs = 20
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for epoch in range(num_epochs):
print("Epoch: %d" %epoch)
opt,x,result = sess.run([optimizer,x,y])
print(result)
我得到的错误是参数的类型无效,必须是字符串或Tensor。
如果我不尝试获取x的值,只需y和opt。
,它就有效答案 0 :(得分:0)
在你的行
opt,x,result = sess.run([optimizer,x,y])
将 x 操作的评估结果分配给变量 x - 因此,在下一次迭代中, x 不再是{{ 1}}但是前一次迭代的结果。只需为变量使用另一个名称,它应该可以工作。