使用tensorflow实现线性回归
作者:Missayaa 发布时间:2023-08-14 02:33:55
标签:tensorflow,线性回归
本文实例为大家分享了tensorflow实现线性回归的具体代码,供大家参考,具体内容如下
一、随机生成1000个点,分布在y=0.1x+0.3直线周围,并画出来
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
num_points = 1000
vectors_set = []
for i in range(num_points):
x1 = np.random.normal(0.0,0.55)
//设置一定范围的浮动
y1 = x1*0.1+0.3+np.random.normal(0.0,0.03)
vectors_set.append([x1,y1])
x_data = [v[0] for v in vectors_set]
y_data = [v[1] for v in vectors_set]
plt.scatter(x_data,y_data,c='r')
plt.show()
二、构造线性回归函数
#生成一维的w矩阵,取值为[-1,1]之间的随机数
w = tf.Variable(tf.random_uniform([1],-1.0,1.0),name='W')
#生成一维的b矩阵,初始值为0
b = tf.Variable(tf.zeros([1]),name='b')
y = w*x_data+b
#均方误差
loss = tf.reduce_mean(tf.square(y-y_data),name='loss')
#梯度下降
optimizer = tf.train.GradientDescentOptimizer(0.5)
#最小化loss
train = optimizer.minimize(loss,name='train')
sess=tf.Session()
init = tf.global_variables_initializer()
sess.run(init)
#print("W",sess.run(w),"b=",sess.run(b),"loss=",sess.run(loss))
for step in range(20):
sess.run(train)
print("W=",sess.run(w),"b=",sess.run(b),"loss=",sess.run(loss))
//显示拟合后的直线
plt.scatter(x_data,y_data,c='r')
plt.plot(x_data,sess.run(w)*x_data+sess.run(b))
plt.show()
三、部分训练结果如下:
W= [ 0.10559751] b= [ 0.29925063] loss= 0.000887708
W= [ 0.10417549] b= [ 0.29926425] loss= 0.000884275
W= [ 0.10318361] b= [ 0.29927373] loss= 0.000882605
W= [ 0.10249177] b= [ 0.29928035] loss= 0.000881792
W= [ 0.10200921] b= [ 0.29928496] loss= 0.000881397
W= [ 0.10167261] b= [ 0.29928818] loss= 0.000881205
W= [ 0.10143784] b= [ 0.29929042] loss= 0.000881111
W= [ 0.10127408] b= [ 0.29929197] loss= 0.000881066
拟合后的直线如图所示:
结论:最终w趋近于0.1,b趋近于0.3,满足提前设定的数据分布
来源:https://blog.csdn.net/Missayaaa/article/details/80053060


猜你喜欢
- 操作系统:Windows2000,IIS5出现症状:使用ASPJPEG时执行Server.CreateObject("Persit
- 在对于时间准确度的把握上,为了使操作的更加细化,很多人习惯把时间精确到秒。但在实际程序操作中,虽然秒数方便我们的查阅,但是计算机并不能直接的
- JS获取网页中HTML元素的几种方法分析:getElementById getElementsByName getElementsByTag
- 前言MySQL性能优化是一个老生常谈的问题,无论是在实际工作中还是面试中,都不可避免遇到相应的场景,下面博主就总结一些能够帮助大家解决这个问
- 数据库在时回加for xml auto调用方法 SqlCommand SqlComm=
- <HTML><HEAD><TITLE>SQL Server 数据库的备份
- 导语:简洁并不等于极简主义,在保持网站简洁的外观的同时,辅以其它元素的使用,同样能够达到要求。那如何做到这一点呢?通过本文你能从中学到一些经
- 单线程执行python的内置模块提供了两个内置模块:thread和threading,thread是源生模块,threading是扩展模块,
- 这篇论坛文章(赛迪网技术社区)主要介绍了数据仓库基本报表制作过程中的SQL写法,详细内容请参考下文:在数据仓库的基本报表制作过程中,通常会使
- 本文主要给大家介绍了关于Python中字典(dict)合并的四种方法,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍:字典是Pyt
- 这是内部的一个邮件记录,分享出来听下业内同行的声音。事情是这样的..==先是 A 推荐了白鸦的推到内部群:“设计师们一定要养成一个习惯:无论
- 我就废话不多说了,直接上代码吧!import paramikoimport pymysqlimport timelinux = ['
- 一、python开发环境安装与配置1.python的下载从https://www.python.org/downloads/进行下载。2.安
- python类class定义及其初始化定义类,功能,属性一般类名首字母大写class Calculator:#名字和价格是属性
- 首先要声明的是1,游标的方法会很慢在mysql中,在oracle数据库中还可以,除非没有别的方法,一般不建议在mysql中使用游标,2,不建
- 多进程&多线程服务端:多进程和多线程的开启方式相同。缺点:<1> 由于Cpython的GIL,导致同一时间无法运行多个线
- 1、函数实现# -*- coding: utf-8 -*-def tail(filename, n=10): with open
- 最近在代码评审的过程,发现挺多错误使用eval导致代码注入的问题,比较典型的就是把eval当解析dict使用,有的就是简单的使用eval,有
- 在上一讲中已经连接了数据库。就数据库而言,连接之后就要对其操作。但是,目前那个名字叫做qiwsirtest的数据仅仅是空架子,没有什么可操作
- tensorflow里面提供了实现图像进行裁剪和填充的函数,就是tf.image.resize_image_with_crop_or_pad