python 实现一个简单的线性回归案例
#!/usr/bin/envpython #-*-coding:utf-8-*- #@File:自实现一个线性回归.py #@Author:赵路仓 #@Date:2020/4/12 #@Desc: #@Contact:398333404@qq.com importos importtensorflowastf deflinear_regression(): """ 自实现一个线性回归 :return: """ #命名空间 withtf.variable_scope("prepared_data"): #准备数据 x=tf.random_normal(shape=[100,1],name="Feature") y_true=tf.matmul(x,[[0.08]])+0.7 #x=tf.constant([[1.0],[2.0],[3.0]]) #y_true=tf.constant([[0.78],[0.86],[0.94]]) withtf.variable_scope("create_model"): #2.构造函数 #定义模型变量参数 weights=tf.Variable(initial_value=tf.random_normal(shape=[1,1],name="Weights")) bias=tf.Variable(initial_value=tf.random_normal(shape=[1,1],name="Bias")) y_predit=tf.matmul(x,weights)+bias withtf.variable_scope("loss_function"): #3.构造损失函数 error=tf.reduce_mean(tf.square(y_predit-y_true)) withtf.variable_scope("optimizer"): #4.优化损失 optimizer=tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(error) #收集变量 tf.summary.scalar("error",error) tf.summary.histogram("weights",weights) tf.summary.histogram("bias",bias) #合并变量 merged=tf.summary.merge_all() #创建saver对象 saver=tf.train.Saver() #显式的初始化变量 init=tf.global_variables_initializer() #开启会话 withtf.Session()assess: #初始化变量 sess.run(init) #创建事件文件 file_writer=tf.summary.FileWriter("E:/tmp/linear",graph=sess.graph) #print(x.eval()) #print(y_true.eval()) #查看初始化变量模型参数之后的值 print("训练前模型参数为:权重%f,偏置%f"%(weights.eval(),bias.eval())) #开始训练 foriinrange(1000): sess.run(optimizer) print("第%d次参数为:权重%f,偏置%f,损失%f"%(i+1,weights.eval(),bias.eval(),error.eval())) #运行合并变量操作 summary=sess.run(merged) #将每次迭代后的变量写入事件 file_writer.add_summary(summary,i) #保存模型 ifi==999: saver.save(sess,"./tmp/model/my_linear.ckpt") ##加载模型 #ifos.path.exists("./tmp/model/checkpoint"): #saver.restore(sess,"./tmp/model/my_linear.ckpt") print("参数为:权重%f,偏置%f,损失%f"%(weights.eval(),bias.eval(),error.eval())) pre=[[0.5]] prediction=tf.matmul(pre,weights)+bias sess.run(prediction) print(prediction.eval()) returnNone if__name__=="__main__": linear_regression()
以上就是python实现一个简单的线性回归案例的详细内容,更多关于python实现线性回归的资料请关注毛票票其它相关文章!