#引入相关依赖
import tensorflow as tf
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import numpy as np
plot_num = 100
vectors= []
#模拟原始数据
for i in range(plot_num):
x1 = np.random.normal(0,0.66)
y1 = 0.1 * x1 + 0.2 + np.random.normal(0,0.04)
vectors.append([x1,y1])
x_data = [v[0] for v in vectors]
y_data = [v[1] for v in vectors]
#画出原始点图
plt.plot(x_data,y_data,'r*',label='Original data')
plt.title('Linear Regression using Gradient Descent')
plt.legend()
plt.savefig('./file.png',dpi=150)
#构建线性回归模型
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) #设置学习率为0.5
train = optimizer.minimize(loss)
#创建会话
sess=tf.Session()
init = tf.global_variables_initializer()
sess.run(init)
#训练20步
for x in range(20):
sess.run(train)
print 'Step={},Loss={},Weight={},Bias={}'.format(x,sess.run(loss),sess.run(W),sess.run(b))
#绘制拟合直线
plt.plot(x_data,y_data,'r*',label='Original data')
plt.plot(x_data,sess.run(W) * x_data + sess.run(b),label='Fitted data')
plt.title('Linear Regression using Gradient Descent')
plt.legend()
plt.savefig('./file1.png',dpi=150)
#关闭会话
sess.close()