我是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)
我得到的错误是参数具有无效类型,必须是字符串或张量。
如果我不尝试获得x的值,只是y和opt。
在您的行中
opt,x,result = sess.run([optimizer,x,y])
您将 x 操作的评估结果分配给变量 x - 因此,在下一个迭代中, x 不再是 tf.Variable(1.0,name="x")
,而是上一个迭代的结果。只需为变量使用另一个名称即可。