代码如下:
'''
线性回归案例
'''
import tensorflow as tf
import numpy as np
from matplotlib import pyplot as plt
# 组织数据
X = np.random.rand(100)
y = X * 0.1 + 0.2
# 定义线性模型
k = tf.Variable(0.) # 初始化斜率
b = tf.Variable(0.) # 初始化截距
y__h = k * X + b # 模型为线性模型
# 定义代价函数
cost = tf.reduce_mean(tf.square(y - y__h))
# 定义梯度下降
opgrade = tf.train.GradientDescentOptimizer(0.2)
# 初始化变量
init = tf.global_variables_initializer()
# 定义会话,开始执行
# 定义代价记录表
jarr = []
with tf.Session() as sess:
# 激活变量
sess.run(init)
# 执行梯度下降
for i in range(201):
sess.run(opgrade.minimize(cost))
# 添加代价到记录表
jarr.append(sess.run(cost))
# 每20次输出代价值以及训练参数k,b
if i % 20 == 0:
print(i,sess.run([cost,k,b]))
# 画出代价曲线
plt.plot(jarr)
plt.show()
代价曲线