TensorFlow——热身运动:简单的线性回归

过程:

先用numpy建立100个数据点,再用梯度下滑工具来拟合,得到完美的回归线。

 1 # _*_coding:utf-8_*_
 2 import tensorflow as tf
 3 import numpy as np
 4
 5 # 用numpy建立100个数据点,y=x*0.1+0.3
 6 x_data = np.random.rand(100).astype("float32")
 7 y_data = x_data*0.1+0.3
 8
 9 # 建立权值变量W和偏移量变量b
10 W = tf.Variable(tf.random_uniform([1],-1.0,1.0))
11 b = tf.Variable(tf.zeros([1]))
12 y = W * x_data + b
13
14 # 最小化均方差
15 loss = tf.reduce_mean(tf.square(y - y_data))
16 optimizer = tf.train.GradientDescentOptimizer(0.5)  #train里面有最优化函数
17 train = optimizer.minimize(loss)    #gradient descent 作用的是代价函数
18
19 # 变量使用前要初始化
20 init = tf.initialize_all_variables()
21
22 # 载入图(在一个session被建立并且run()函数被运行前,TensorFlow不会进行任何实质的计算)
23 sess = tf.Session()     # 会话将图的 op 分发到如 CPU 或 GPU 之类的 设备 (Devices()) 上, 同时提供 执行 op 的方法
24 sess.run(init)
25
26 # 调整线
27 for step in xrange(201):
28     sess.run(train)
29     if step % 20 == 0:
30         print (step, sess.run(W), sess.run(b))

运行结果:

(0, array([ 0.32897317], dtype=float32), array([ 0.2412499], dtype=float32))
(20, array([ 0.15775403], dtype=float32), array([ 0.26956022], dtype=float32))
(40, array([ 0.11639664], dtype=float32), array([ 0.29135802], dtype=float32))
(60, array([ 0.1046551], dtype=float32), array([ 0.29754651], dtype=float32))
(80, array([ 0.10132162], dtype=float32), array([ 0.29930344], dtype=float32))
(100, array([ 0.10037522], dtype=float32), array([ 0.29980224], dtype=float32))
(120, array([ 0.10010655], dtype=float32), array([ 0.29994386], dtype=float32))
(140, array([ 0.10003026], dtype=float32), array([ 0.29998407], dtype=float32))
(160, array([ 0.10000858], dtype=float32), array([ 0.29999548], dtype=float32))
(180, array([ 0.10000245], dtype=float32), array([ 0.29999873], dtype=float32))

符合:y=x*0.1+0.3

时间: 2024-12-30 05:33:58

TensorFlow——热身运动:简单的线性回归的相关文章

使用tensorflow实现最简单的线性回归算法

1 #线性回归:用线性模型y=Wx+b拟合sin 2 import numpy as np 3 import matplotlib.pyplot as plt 4 import tensorflow as tf 5 6 #数据,标签 7 x_data = np.linspace(-2*np.pi,2*np.pi,300) 8 noise = np.random.normal(-0.01,0.05,x_data.shape) 9 y_label = np.sin(x_data) + noise 1

使用tensorflow进行简单的线性回归

使用tensorflow进行简单的线性回归 标签(空格分隔): tensorflow 数据准备 使用np.random.uniform()生成x方向的数据 使用np.random.uniform()生成bias数据 直线方程为y=0.1x + 0.2 使用梯度下降算法 代码 import numpy as np import tensorflow as tf path = 'D:\tensorflow_quant\ailib\log_tmp' # 生成x数据 points = 100 vecto

第二篇[机器学习] 学习机器学习,从最简单的线性回归开始

机器学习,分为监督学习和无监督学习,监督学习里有回归和分类,分类有线性回归和逻辑回归. 从最简单的线性回归开始: 通过已有数据需要预测的线性方程: 实际值和预测值的误差,求最小误差函数(最小二乘法): 1.梯度下降法: 其中ε是步长,步长越大,下降越快,但是可能到不了局部最小值,步长越小,下降越慢,计算越多 2.正规方程直接求解: 最小二乘法正规方程组的详细推导: https://zhuanlan.zhihu.com/p/28190949?utm_medium=social&utm_source

健身的心得–热身运动很重要呀!

热身运动真的非常非常重要! 不单单是身体的因素还有心里的因素! 因为你刚刚要运动的时候肯定是不想动的,如果热身运动做好的话就没有那种不愿意动的感觉了. 另外身体的因素,热身运动做好以后身体更灵活,很多觉得费劲的动作也不是那么难了,做的组数和效果都有很好的提升!就是活动开了的感觉! 如何做热身呢? 不要先做大重量的动作,从活动身体高抬腿扩胸,腰开始到抻筋然后再到仰卧起做然后哑铃就差不多了!

tensorflow构建一个简单神经网络

使用Tensorflow实现一个简单的神经网络 输入数据: 输入数据的形状是[300, 1], 也就是每个元素有一个特征,所以输入神经元是一个. 隐藏层: 输出神经元10个.输出数据会成为[300, 10]的形状.也就是300个元素,每个元素的特征变成了10个. 激活函数使用Relu 输出层: 输出数据是[300, 1] 不使用激活函数 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt # 添加层

用Tensorflow完成简单的线性回归模型

思路:在数据上选择一条直线y=Wx+b,在这条直线上附件随机生成一些数据点如下图,让TensorFlow建立回归模型,去学习什么样的W和b能更好去拟合这些数据点. 1)随机生成1000个数据点,围绕在y=0.1x+0.3 周围,设置W=0.1,b=0.3,届时看构建的模型是否能学习到w和b的值. import numpy as np import tensorflow as tf import matplotlib.pyplot as plt num_points=1000 vectors_se

简单的线性回归问题-TensorFlow+MATLAB·

首先我们要试验的是 人体脂肪fat和年龄age以及体重weight之间的关系,我们的目标就是得到一个最优化的平面来表示三者之间的关系: TensorFlow的程序如下: import tensorflow as tf import numpy as np import matplotlib.pyplot as plt W = tf.Variable(tf.zeros([2, 1], name="weight_age")) b = tf.Variable(0.0, name="

TensorFlow实现一个简单线性回归的例子

1 __author__ = "WSX" 2 import tensorflow as tf 3 import numpy as np 4 import matplotlib.pyplot as plt 5 6 x_data = np.linspace(-0.5,0.5,200)[: , np.newaxis] #-0.5 --0.5 之间产生200个点 存到后面的2维中 7 noise = np.random.normal(0 ,0.02 ,x_data.shape) 8 y_dat

简单多元线性回归(梯度下降算法与矩阵法)

多元线性回归是最简单的机器学习模型,通过给定的训练数据集,拟合出一个线性模型,进而对新数据做出预测. 对应的模型如下: n: 特征数量. 一般选取残差平方和最小化作为损失函数,对应为: M:训练样本数量. 通过最小化代价损失函数,来求得 值,一般优化的方法有两种,第一是梯度下降算法(Gradient Descent),第二种是矩阵法(The normal equations). 梯度下降算法