我是TensorFlow的新手。
我想在TF.Session块中打印错误变量,以查看错误变量的变化。
我在网上找到了这个基本示例,并且想打印这些变量以更好地了解正在发生的事情。
我感谢帮助!
import tensorflow as tf
import numpy as np
# x and y are placeholders for our training data
x = tf.placeholder("float")
y = tf.placeholder("float")
# w is the variable storing our values. It is initialised with starting "guesses"
# w[0] is the "a" in our equation, w[1] is the "b"
w = tf.Variable([1.0, 2.0], name="w")
# Our model of y = a*x + b
y_model = tf.multiply(x, w[0]) + w[1]
# Our error is defined as the square of the differences
error = tf.square(y - y_model)
# The Gradient Descent Optimizer does the heavy lifting
train_op = tf.train.GradientDescentOptimizer(0.01).minimize(error)
# Normal TensorFlow - initialize values, create a session and run the
model
model = tf.global_variables_initializer()
with tf.Session() as session:
session.run(model)
for i in range(100):
x_value = np.random.rand()
y_value = x_value * 2 + 6
session.run(train_op, feed_dict={x: x_value, y: y_value})
e = session.run(error)
#****PRINT ERROR VARIABLE?*****
w_value = session.run(w)
print("Predicted model: {a:.3f}x + {b:.3f}".format(a=w_value[0],
b=w_value[1]))
您必须为获得错误值的模型提供馈送:
e = session.run(error, feed_dict={x: x_value, y: y_value})
print(e)
但是,如果占位符,我更喜欢这样做:
import tensorflow as tf
import numpy as np
# x and y are placeholders for our training data
x = tf.placeholder(tf.float32,())
y = tf.placeholder(tf.float32,())
# w is the variable storing our values. It is initialised with starting "guesses"
# w[0] is the "a" in our equation, w[1] is the "b"
w = tf.Variable([1.0, 2.0], name="w")
# Our model of y = a*x + b
y_model = tf.multiply(x, w[0]) + w[1]
# Our error is defined as the square of the differences
error = tf.square(y - y_model)
# The Gradient Descent Optimizer does the heavy lifting
train_op = tf.train.GradientDescentOptimizer(0.01).minimize(error)
# Normal TensorFlow - initialize values, create a session and run the
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for i in range(100):
x_value = np.random.rand()
y_value = x_value * 2 + 6
_,e=sess.run([train_op,error], feed_dict={x: x_value, y: y_value})
print(e)
w_value = sess.run(w)
print("Predicted model: {a:.3f}x + {b:.3f}".format(a=w_value[0],
b = w_value [1]))