import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
#样本
#使用NUMPY 生产100个随机点
x_data = np.random.rand(60)
#直线模型 K=0.1 常量为0.3
y_data = x_data*1.30000023 +0.300220
#优化接近或等于样本
#构造一个线性模型
b = tf.Variable(0.)
k = tf.Variable(0.)
y = k*x_data + b
#二次代价函数 优化过程
# 求平均平方(误差(真实y_data -y预测值))
loss = tf.reduce_mean(tf.square(y_data -y ))#求平均值
#定义一个梯度下降法进行训练的优化器 学习域0.2
optimizer =tf.train.GradientDescentOptimizer(0.2)
#最小化代价函数 loss 越小接近真实模型
train =optimizer.minimize(loss)
#初始化变量
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
#可视化
#生成图片框架
fig = plt.figure()
#连续的画图
ax =fig.add_subplot(1,1,1)
#使用点来打印原始的数据线条
ax.scatter(x_data,y_data)
#连续plt
#python 3
plt.ion()
#python 2 block= False
#plt.show(block= False)
plt.show()
for step in range(300):
sess.run(train)
#画出预测数据
if(step%10 == 0):
print(step ,sess.run([k,b]))