开发者学堂课程【深度学习框架 TensorFlow 入门:案例:自实现线性回归】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/773/detail/13546
案例:自实现线性回归
内容介绍:
一、线性回归原理复习
二、案例:实现线性回归的训练
三、代码部分
一、线性回归原理复习
1.构建模型
y=w1x1+W2x2+...+wnxn+b
2.构造损失函数
均方误差
3.优化损失
梯度下降
二、实现线性回归的训练
准备真实数据
100样本
x 特征值形状(100。 1)
y_ .true 目标值(100, 1)
y_ .true = 0.8x + 0.7
假定 x 和 y 之间的关系满足
y=kx+b
k ≈ 0.8 b≈ 0.7
流程分析:
(100,1) * (1, 1) = (100, 1)
y_ predict = x * weights(1, 1) + bias(1, 1)
1.构建模型
y_predict = tf.matmul(x,weights) + bias
2.构造损失函数
error = tf.reduce.mean(tf.square(y_predict - y_true))
3.优化损失
optimizer=tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(error)
三、代码部分
def linear_ regression():
"""自实现一个线性回归
:return:
"""
# 1)准备数据
X = tf.random_normal(shape= [100,1])
y_true= tf.matmul(X,[[0.8]]) + 0.7
# 2)构造模型
#定义模型参数用变量
weights = tf. Variable(initial_value=tf.random_normal( shape=[1, 1]))
bias = tf.Variable(initial_value=tf.random_normal(shape= [1, 1] )
y_predict = tf.matmul(X, weights)+bias
# 3)构造损失函数
error = tf. reduce_mean(tf,square(y_predict-y_true))
# 4)优化损失
optimizer = tf.train. GradientDescentoptimizer(Learning_rate=0.01) .mininize(error)
#显式地初始化变量
init = tf.global_variables_ initializer()
# 开启会话
with tf.Session() as sess:
# 初始化变量
sess.run(init)
# 查看初始化模型参数之后的值
print("训练前模型参数为:权重%f,偏置%f,损失为%f" % (weights.eval(), bias.eval(), error.eval())
# 开始训练
for i in range(1000):
sess.run(optimizer)
print("第%d次训练后模型参数为:权重%f,偏置%f, 损失为%f"%(1 + 1, weights.eval(), bias.eval(), error.eval()))
return None