1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| import numpy as np import matplotlib.pyplot as plt import tensorflow as tf
num_points = 1000 vectors_set = []
for i in range(num_points): x1 = np.random.normal(0.0, 0.55) y1 = x1 * 0.1 + 0.3 + np.random.normal(0.0, 0.03) vectors_set.append([x1, y1])
x_data = [v[0] for v in vectors_set] y_data = [v[1] for v in vectors_set]
W = tf.Variable(tf.random_uniform([1], -1.0, 1.0)) b = tf.Variable(tf.zeros([1])) y = W * x_data + b
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5) train = optimizer.minimize(loss)
init = tf.global_variables_initializer()
sess = tf.Session() sess.run(init)
for z in [1, 2, 3, 4, 5, 6, 7, 8, 1000]: for step in range(z): sess.run(train) print(step + 1, sess.run(W), sess.run(b)) plt.plot(x_data, y_data, 'ro', label='Original data') plt.plot(x_data, sess.run(W) * x_data + sess.run(b)) plt.legend() plt.show()
|