基本Tensorflow优化示例的错误



我是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"),而是上一个迭代的结果。只需为变量使用另一个名称即可。

最新更新