import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
# 使用tensorflow1.0
tf = tf.compat.v1
tf.disable_v2_behavior()
# 0-10之间取30个数据
data_x = np.linspace(0, 10, 30)
# 加噪
data_y = data_x * 3 + 7 + np.random.normal(0, 1, 30)
# 显示散点图
plt.scatter(data_x, data_y)
plt.show()
# 1、定义参数 y=w*x+b
# 2、输入训练数据
# 3、执行推断
# 4、计算损失
# 5、训练模型
# 6、评估
w = tf.Variable(1., name="quanhzong")
b = tf.Variable(0., name="pianzhi")
# 设置占位符
x = tf.placeholder(tf.float32, shape=None)
y = tf.placeholder(tf.float32, shape=None)
# 线性计算
pred = tf.multiply(x, w) + b
# 通过平方差计算损失值
loss = tf.reduce_sum(tf.squared_difference(pred, y))
learn_rate = 0.0001
# 通过梯度下降算法寻找最小的loss值
train_step = tf.train.GradientDescentOptimizer(learn_rate).minimize(loss)
# 通过Session训练模型
sess = tf.Session()
sess.run(tf.global_variables_initializer())
for i in range(10000):
sess.run(train_step, feed_dict={x: data_x, y: data_y})
if i % 1000 == 0:
print(sess.run([loss, w, b], feed_dict={x: data_x, y: data_y}))
print(sess.run(w * data_x[10] + b), data_y[10])
机器学习基础之线性回归模型
最新推荐文章于 2023-04-26 11:12:38 发布