线性回归:


线性方程 y=kx+b



w12+w22+w33+w44+…w“n”*n
算法:线性回归
策略:均方误差
优化:梯度下降api(学习率)


import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tfdef myregression():"""自实现一个线性回归预测:return: """# 1,准备数据,x特征值[100,1]   y目标值[100]x = tf.random_normal([100,1],mean=1.75,stddev=0.5,name="x_data") # 随机创建一个值 100行1列 平均值1.75 方差0.5 name是x_data# 矩阵相乘必须是二维的y_true = tf.matmul(x,[[0.7]]) + 0.8 # 假设偏置是0.8# 2,建立线性回归模型1个特征,1个权重,一个偏置 y = x*w + b# 随机给一个权重和偏置的值,让他去计算损失,然后在当前状态下进行优化# 用变量定义才能进行优化weight = tf.Variable(tf.random_normal([1,1],mean=0.0,stddev=1.0),name="w")bias = tf.Variable(0.0,name="b")y_predict = tf.matmul(x,weight)+bias# 3,建立损失函数,均方误差loss = tf.reduce_mean(tf.square(y_true - y_predict))# 4,梯度下降优化损失 leaning_rate:0--1,2,3,4,5train_op = tf.train.GradientDescentOptimizer(0.1).minimize(loss)# 定义一个初始化变量opinit_op = tf.global_variables_initializer()# 通过会话运行程序with tf.Session() as sess:  # 上下文管理器# 初始化变量sess.run(init_op)# 打印随机最先初始化的权重和偏置print("随机初始化的参数权重:%f,偏置为:%f"%(weight.eval(),bias.eval()))# 循环训练 运行优化for i in range(200):sess.run(train_op)print("第%d次优化后的参数权重:%f,偏置为:%f" % (i,weight.eval(), bias.eval()))return Noneif __name__=="__main__":myregression()







tensorboard --logdir=“test” (test=你的路径)

作用域

让模型代码更加清晰,作用分明

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tfdef myregression():"""自实现一个线性回归预测:return: """# 建立作用域with tf.variable_scope("data"):# 1,准备数据,x特征值[100,1]   y目标值[100]x = tf.random_normal([100,1],mean=1.75,stddev=0.5,name="x_data") # 随机创建一个值 100行1列 平均值1.75 方差0.5 name是x_data# 矩阵相乘必须是二维的y_true = tf.matmul(x,[[0.7]]) + 0.8 # 假设偏置是0.8with tf.variable_scope("model"):# 2,建立线性回归模型1个特征,1个权重,一个偏置 y = x*w + b# 随机给一个权重和偏置的值,让他去计算损失,然后在当前状态下进行优化# 用变量定义才能进行优化# trainable参数:指定这个变量能否跟着梯度下降一起优化weight = tf.Variable(tf.random_normal([1,1],mean=0.0,stddev=1.0),name="w",trainable=False)bias = tf.Variable(0.0,name="b")y_predict = tf.matmul(x,weight)+biaswith tf.variable_scope("loos"):# 3,建立损失函数,均方误差loss = tf.reduce_mean(tf.square(y_true - y_predict))with tf.variable_scope("optimizer"):# 4,梯度下降优化损失 leaning_rate:0--1,2,3,4,5train_op = tf.train.GradientDescentOptimizer(0.1).minimize(loss)# 定义一个初始化变量opinit_op = tf.global_variables_initializer()# 通过会话运行程序with tf.Session() as sess:  # 上下文管理器# 初始化变量sess.run(init_op)# 打印随机最先初始化的权重和偏置print("随机初始化的参数权重:%f,偏置为:%f"%(weight.eval(),bias.eval()))# 建立事件文件filewriter = tf.summary.FileWriter("./test",graph=sess.graph)# 循环训练 运行优化for i in range(200):sess.run(train_op)print("第%d次优化后的参数权重:%f,偏置为:%f" % (i,weight.eval(), bias.eval()))return Noneif __name__=="__main__":myregression()


增加变量显示

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf# 1,训练参数问题:trainable# 学习率和步数的设置
# 2,添加权重值,损失值等在tensorboard观察情况# 1,收集变量 2,合并变量写入事件文件中
def myregression():"""自实现一个线性回归预测:return: """# 建立作用域tf.variable_scopewith tf.variable_scope("data"):# 1,准备数据,x特征值[100,1]   y目标值[100]x = tf.random_normal([100,1],mean=1.75,stddev=0.5,name="x_data") # 随机创建一个值 100行1列 平均值1.75 方差0.5 name是x_data# 矩阵相乘必须是二维的y_true = tf.matmul(x,[[0.7]]) + 0.8 # 假设偏置是0.8with tf.variable_scope("model"):# 2,建立线性回归模型1个特征,1个权重,一个偏置 y = x*w + b# 随机给一个权重和偏置的值,让他去计算损失,然后在当前状态下进行优化# 用变量定义才能进行优化# trainable参数:指定这个变量能否跟着梯度下降一起优化weight = tf.Variable(tf.random_normal([1,1],mean=0.0,stddev=1.0),name="w",trainable=False)bias = tf.Variable(0.0,name="b")y_predict = tf.matmul(x,weight)+biaswith tf.variable_scope("loos"):# 3,建立损失函数,均方误差loss = tf.reduce_mean(tf.square(y_true - y_predict))with tf.variable_scope("optimizer"):# 4,梯度下降优化损失 leaning_rate:0--1,2,3,4,5train_op = tf.train.GradientDescentOptimizer(0.1).minimize(loss)# 1,收集tensortf.summary.scalar("losses",loss)tf.summary.histogram("weights",weight)# 2,定义合并tensor的opmerged = tf.summary.merge_all()# 定义一个初始化变量opinit_op = tf.global_variables_initializer()# 通过会话运行程序with tf.Session() as sess:  # 上下文管理器# 初始化变量sess.run(init_op)# 打印随机最先初始化的权重和偏置print("随机初始化的参数权重:%f,偏置为:%f"%(weight.eval(),bias.eval()))# 建立事件文件filewriter = tf.summary.FileWriter("./test",graph=sess.graph)# 循环训练 运行优化for i in range(500):sess.run(train_op)# 运行合并的tensorsummary = sess.run(merged)filewriter.add_summary(summary,i)print("第%d次优化后的参数权重:%f,偏置为:%f" % (i,weight.eval(), bias.eval()))return Noneif __name__=="__main__":myregression()



模型的保存和加载


保存

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf# 1,训练参数问题:trainable# 学习率和步数的设置
# 2,添加权重值,损失值等在tensorboard观察情况# 1,收集变量 2,合并变量写入事件文件中
def myregression():"""自实现一个线性回归预测:return: """# 建立作用域tf.variable_scopewith tf.variable_scope("data"):# 1,准备数据,x特征值[100,1]   y目标值[100]x = tf.random_normal([100,1],mean=1.75,stddev=0.5,name="x_data") # 随机创建一个值 100行1列 平均值1.75 方差0.5 name是x_data# 矩阵相乘必须是二维的y_true = tf.matmul(x,[[0.7]]) + 0.8 # 假设偏置是0.8with tf.variable_scope("model"):# 2,建立线性回归模型1个特征,1个权重,一个偏置 y = x*w + b# 随机给一个权重和偏置的值,让他去计算损失,然后在当前状态下进行优化# 用变量定义才能进行优化# trainable参数:指定这个变量能否跟着梯度下降一起优化weight = tf.Variable(tf.random_normal([1,1],mean=0.0,stddev=1.0),name="w",trainable=False)bias = tf.Variable(0.0,name="b")y_predict = tf.matmul(x,weight)+biaswith tf.variable_scope("loos"):# 3,建立损失函数,均方误差loss = tf.reduce_mean(tf.square(y_true - y_predict))with tf.variable_scope("optimizer"):# 4,梯度下降优化损失 leaning_rate:0--1,2,3,4,5train_op = tf.train.GradientDescentOptimizer(0.1).minimize(loss)# 1,收集tensortf.summary.scalar("losses",loss)tf.summary.histogram("weights",weight)# 2,定义合并tensor的opmerged = tf.summary.merge_all()# 定义一个初始化变量opinit_op = tf.global_variables_initializer()# 定义一个保存模型的实例saver = tf.train.Saver()# 通过会话运行程序with tf.Session() as sess:  # 上下文管理器# 初始化变量sess.run(init_op)# 打印随机最先初始化的权重和偏置print("随机初始化的参数权重:%f,偏置为:%f"%(weight.eval(),bias.eval()))# 建立事件文件filewriter = tf.summary.FileWriter("./test",graph=sess.graph)# 循环训练 运行优化for i in range(500):sess.run(train_op)# 运行合并的tensorsummary = sess.run(merged)filewriter.add_summary(summary,i)print("第%d次优化后的参数权重:%f,偏置为:%f" % (i,weight.eval(), bias.eval()))saver.save(sess,"./ckpt/test_model") # 模型保存return Noneif __name__=="__main__":myregression()

加载模型从上次结果开始训练

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf# 1,训练参数问题:trainable# 学习率和步数的设置
# 2,添加权重值,损失值等在tensorboard观察情况# 1,收集变量 2,合并变量写入事件文件中
def myregression():"""自实现一个线性回归预测:return: """# 建立作用域tf.variable_scopewith tf.variable_scope("data"):# 1,准备数据,x特征值[100,1]   y目标值[100]x = tf.random_normal([100,1],mean=1.75,stddev=0.5,name="x_data") # 随机创建一个值 100行1列 平均值1.75 方差0.5 name是x_data# 矩阵相乘必须是二维的y_true = tf.matmul(x,[[0.7]]) + 0.8 # 假设偏置是0.8with tf.variable_scope("model"):# 2,建立线性回归模型1个特征,1个权重,一个偏置 y = x*w + b# 随机给一个权重和偏置的值,让他去计算损失,然后在当前状态下进行优化# 用变量定义才能进行优化# trainable参数:指定这个变量能否跟着梯度下降一起优化weight = tf.Variable(tf.random_normal([1,1],mean=0.0,stddev=1.0),name="w",trainable=False)bias = tf.Variable(0.0,name="b")y_predict = tf.matmul(x,weight)+biaswith tf.variable_scope("loos"):# 3,建立损失函数,均方误差loss = tf.reduce_mean(tf.square(y_true - y_predict))with tf.variable_scope("optimizer"):# 4,梯度下降优化损失 leaning_rate:0--1,2,3,4,5train_op = tf.train.GradientDescentOptimizer(0.1).minimize(loss)# 1,收集tensortf.summary.scalar("losses",loss)tf.summary.histogram("weights",weight)# 2,定义合并tensor的opmerged = tf.summary.merge_all()# 定义一个初始化变量opinit_op = tf.global_variables_initializer()# 定义一个保存模型的实例saver = tf.train.Saver()# 通过会话运行程序with tf.Session() as sess:  # 上下文管理器# 初始化变量sess.run(init_op)# 打印随机最先初始化的权重和偏置print("随机初始化的参数权重:%f,偏置为:%f"%(weight.eval(),bias.eval()))# 建立事件文件filewriter = tf.summary.FileWriter("./test",graph=sess.graph)# 加载模型,覆盖模型当中随机定义的参数,从上次训练的参数结果开始if os.path.exists("./ckpt/checkpoint"): # 判断ckpt目录下是否存在checkpointsaver.restore(sess,"./ckpt/test_model") # 存在就加载模型# 循环训练 运行优化for i in range(500):sess.run(train_op)# 运行合并的tensorsummary = sess.run(merged)filewriter.add_summary(summary,i)print("第%d次优化后的参数权重:%f,偏置为:%f" % (i,weight.eval(), bias.eval()))saver.save(sess,"./ckpt/test_model") # 模型保存return Noneif __name__=="__main__":myregression()



import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf# 1,训练参数问题:trainable# 学习率和步数的设置
# 2,添加权重值,损失值等在tensorboard观察情况# 1,收集变量 2,合并变量写入事件文件中
# 3,定义命令行参数# 1,首先定义有哪些参数需要在运行的时候指定# 2,程序当中获取定义命令行参数
# 第一参数:名字,默认值,说明
tf.flags.DEFINE_integer("max_step",100,"模型训练的步数")
tf.flags.DEFINE_string("model_dir"," ","模型的加载路径")
# 定义获取命令行参数的名字
FLAGS = tf.flags.FLAGS
def myregression():"""自实现一个线性回归预测:return: """# 建立作用域tf.variable_scopewith tf.variable_scope("data"):# 1,准备数据,x特征值[100,1]   y目标值[100]x = tf.random_normal([100,1],mean=1.75,stddev=0.5,name="x_data") # 随机创建一个值 100行1列 平均值1.75 方差0.5 name是x_data# 矩阵相乘必须是二维的y_true = tf.matmul(x,[[0.7]]) + 0.8 # 假设偏置是0.8with tf.variable_scope("model"):# 2,建立线性回归模型1个特征,1个权重,一个偏置 y = x*w + b# 随机给一个权重和偏置的值,让他去计算损失,然后在当前状态下进行优化# 用变量定义才能进行优化# trainable参数:指定这个变量能否跟着梯度下降一起优化weight = tf.Variable(tf.random_normal([1,1],mean=0.0,stddev=1.0),name="w",trainable=False)bias = tf.Variable(0.0,name="b")y_predict = tf.matmul(x,weight)+biaswith tf.variable_scope("loos"):# 3,建立损失函数,均方误差loss = tf.reduce_mean(tf.square(y_true - y_predict))with tf.variable_scope("optimizer"):# 4,梯度下降优化损失 leaning_rate:0--1,2,3,4,5train_op = tf.train.GradientDescentOptimizer(0.1).minimize(loss)# 1,收集tensortf.summary.scalar("losses",loss)tf.summary.histogram("weights",weight)# 2,定义合并tensor的opmerged = tf.summary.merge_all()# 定义一个初始化变量opinit_op = tf.global_variables_initializer()# 定义一个保存模型的实例saver = tf.train.Saver()# 通过会话运行程序with tf.Session() as sess:  # 上下文管理器# 初始化变量sess.run(init_op)# 打印随机最先初始化的权重和偏置print("随机初始化的参数权重:%f,偏置为:%f"%(weight.eval(),bias.eval()))# 建立事件文件filewriter = tf.summary.FileWriter("./test",graph=sess.graph)# 加载模型,覆盖模型当中随机定义的参数,从上次训练的参数结果开始if os.path.exists("./ckpt/checkpoint"): # 判断ckpt目录下是否存在checkpointsaver.restore(sess,FLAGS.model_dir) # 存在就加载模型# 循环训练 运行优化 步数for i in range(FLAGS.max_step):sess.run(train_op)# 运行合并的tensorsummary = sess.run(merged)filewriter.add_summary(summary,i)print("第%d次优化后的参数权重:%f,偏置为:%f" % (i,weight.eval(), bias.eval()))saver.save(sess,FLAGS.model_dir) # 模型保存return Noneif __name__=="__main__":myregression()

python 线性回归.py --max_step=300 --model_dir="/ckpt/model"

深度学习-线性回归基础-02相关推荐

  1. 深度学习实验基础02:实验室服务器使用

    服务器内存 1. 查看GPU是否空闲: nvidia-smi 表头释义:Fan:显示风扇转速,数值在0到100%之间,是计算机的期望转速,如果计算机不是通过风扇冷却或者风扇坏了,显示出来就是N/A: ...

  2. 《繁凡的深度学习笔记》前言、目录大纲 一文让你完全弄懂深度学习所有基础(DL笔记整理系列)

    <繁凡的深度学习笔记>前言.目录大纲 (DL笔记整理系列) 一文弄懂深度学习所有基础 ! 3043331995@qq.com https://fanfansann.blog.csdn.ne ...

  3. 深度学习的基础知识(机器学习、损失函数、梯度下降、反向传播、基础模型一网打尽)

    1.预备信息 1.1了解技术的发展阶段 技术一般存在几个阶段:1.发展期.2.高峰期.3.冰河期.4.应用期 就是先达到一个高峰,但是在达到高峰之后就会被发现很多问题,然后热度就会不断地下降,到达一个 ...

  4. 零基础学习深度学习_深度学习的基础!!!

    零基础学习深度学习 The ability to learn from experience and perform better when confronted with similar chall ...

  5. 深度学习 机器学习基础_实用的机器学习基础

    深度学习 机器学习基础 This article describes my attempt at the Titanic Machine Learning competition on Kaggle. ...

  6. 【深度学习入门基础】一、从线性代数和微积分的角度看神经网络

    [深度学习入门基础]从线性代数和微积分的角度看神经网络 这是深度学习入门系列文章,我们企图用最简洁的语言.最干净的表达,让读者快速获取到他所想要的.本系列文章持续更新.一些网上能查到的基础知识,诸如激 ...

  7. 计算机视觉面试宝典--深度学习机器学习基础篇(四)

    计算机视觉面试宝典–深度学习机器学习基础篇(四) 本篇主要包含SVM支持向量机.K-Means均值以及机器学习相关常考内容等相关面试经验. SVM-支持向量机 支持向量机(support vector ...

  8. STM32运行深度学习指南基础篇(3)(STM32CubeMX.AI+Tensorflow)

    STM32运行深度学习指南基础篇(3)(STM32CubeMX.AI+Tensorflow) 在上一篇文章中我们已经有训练好的tflite模型,接下来我们要在Clion中实现,如果是Keil的朋友可以 ...

  9. 浅谈深度学习的基础——神经网络算法(科普)

    浅谈深度学习的基础--神经网络算法(科普) 神经网络算法是一门重要的机器学习技术.它是目前最为火热的研究方向--深度学习的基础.学习神经网络不仅可以让你掌握一门强大的机器学习方法,同时也可以更好地帮助 ...

最新文章

  1. Android选项卡置底的方法
  2. R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(自定义分组的颜色)实战
  3. 线上性能问题初步排查方法
  4. 《Ext JS 高级程序设计》的目录与样张
  5. Python | 5分钟搞定 Python3 元组
  6. android动态化ui框架,动态化高性能的 UI 框架 Virtualview-Android
  7. 如果千百年前有视觉AI算法,世界将会是什么样的光景呢?
  8. ubuntu系统设置开机自启动
  9. #nginx# 泛解析大量域名的情况下 将不带www的域名,301到与之对应的www前缀的域名...
  10. nuxt服务端php,nuxt服务端部署上线
  11. verilog将像素数据写入txt_【测试工具】测试数据生成工具datafaker
  12. 忘了是出自雪中还是剑来或者就是癞蛤蟆?反正应该是烽火大太监的句子吧。还掺杂了许多别家的,记不清谁写的了,或许有西藏的佛陀
  13. dyn_threshold 算子
  14. Ring Buffer介绍
  15. Elasticsearch 多字段查询 best_fields、most_fields、cross_fields,傻傻分不清楚?
  16. ant design vue中分页器的使用注意事项
  17. LeetCode:14. Longest Commen Prefix(Easy)
  18. 2022年金三银四面试葵花宝典(你不知道的程序员面试技巧)
  19. Systemverilog中static、automatic区别
  20. 计算机初级职称答辩题,中小学职称评选答辩问题集锦

热门文章

  1. linux虚拟实验服务,Linux虚拟服务器(LVS)实验文档PDF
  2. mysql生产环境运维方案_[MySQL生产环境] Innodb存储引擎内存报警问题处理过程
  3. java 人脸检测_Java+OpenCV实现人脸检测并自动拍照
  4. linux提示光标下无字符串,vim复制、粘贴、删除、撤销、移动光标(linux)
  5. php页面代码简化,代码求简化
  6. linux输出mac,Linux(Mac)命令ll输出后各个字段的含义
  7. java直接对list使用sql语句_Java和SQL语句阶段考试错题集
  8. thymeleaf 异常:SpelEvaluationException: EL1008E: Property or field ‘url‘ cannot be found
  9. python 任务调度 celery_python任务调度模块celery(二)
  10. bootstrap文件不能被识别_树莓派安装openCV做图像识别