深度学习之自实现线性回归

 1 import tensorflow as tf
 2 import os
 3 
 4 os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
 5 
 6 
 7 def linear_regression():
 8     """
 9     自实现一个线性回归
10     :return:
11     """
12     # (1)准备数据
13     X = tf.compat.v1.random_normal(shape=[100,1])
14     y_true = tf.matmul(X,[[0.8]])+0.7
15 
16     # (2)构造模型
17     # 定义模型参数  用变量
18     weights = tf.Variable(initial_value=tf.compat.v1.random_normal(shape=[1,1]))
19     bias = tf.Variable(initial_value=tf.compat.v1.random_normal(shape=[1,1]))
20     y_predict = tf.matmul(X,weights)+bias
21     # (3)构造损失函数
22     error=tf.reduce_mean(tf.square(y_predict-y_true))
23 
24     # (4)优化损失
25     optimizer = tf.compat.v1.train.GradientDescentOptimizer(learning_rate=0.01).minimize(error)
26 
27 
28     # 显示地初始化变量
29     init = tf.compat.v1.global_variables_initializer()
30 
31     # 开启会话
32     with tf.compat.v1.Session() as sess:
33         #初始化变量
34         sess.run(init)
35 
36         #查看初始化模型参数之后的值
37         print("训练前模型参数为:权重%f,偏置%f,损失为%f"%(weights.eval(),bias.eval(),error.eval()))
38 
39         #开始训练
40         for i in range(1000):
41             sess.run(optimizer)
42             print("第%d次训练后模型参数为:权重%f,偏置%f,损失为%f" % (i+1,weights.eval(), bias.eval(), error.eval()))
43 
44 
45 
46 
47     return None
48 
49 
50 if __name__ == "__main__":
51     linear_regression()

猜你喜欢

转载自www.cnblogs.com/quxiangjia/p/12293217.html