Я написал модель линейной регрессии с использованием тензорного потока.Код выглядит следующим образом:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
# generate some data around line(add some noise)
train_X = np.linspace(0, 20, 100)
train_Y = 2.0 * train_X + 3.0 + np.random.randn(len(train_X))
# create tensorflow model
X = tf.placeholder(tf.float32)
Y = tf.placeholder(tf.float32)
w = tf.Variable(0.0)
b = tf.Variable(0.0)
loss = tf.square(Y - w*X - b)
train = tf.train.GradientDescentOptimizer(0.001).minimize(loss)
# train
losses = []
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for i in range(100):
for x, y in zip(train_X, train_Y):
_, l = sess.run([train, loss], feed_dict={X: x, Y: y})
losses.append(l)
w_value, b_value = sess.run([w, b])
# plot result
plt.subplot(2, 1, 1)
plt.title('linear gression')
plt.plot(train_X, train_Y, '+')
plt.plot(train_X, w_value*train_X+b_value)
plt.subplot(2, 1, 2)
plt.title('losses')
plt.plot(losses)
plt.show()
Я запустил этот сценарий несколько раз и получил две классные картинки, как показано ниже:
Я хотел бы знать, почему потеря увеличивается на одной картине и уменьшается на другой.