[置顶] windows10 tensorflow(二)原理实战之回归分析,深度学习框架(梯度下降法求解回归参数)
2018-01-05 15:33
766 查看
windows10 tensorflow(二)原理实战之回归分析,深度学习框架(梯度下降法求解回归参数)
TF数据生成方式:参考TF数据生成12法
TF基本原理与概念理解: tensorflow(一)windows 10 64位安装tensorflow1.4与基本概念解读tf.global_variables_initializer
Graphic display出数据分布结果
通过TensorFlow代码找到最佳的参数W与b,使的输入数据x_data,生成输出数据y_data,本例中将会一条直线y_data=W*x_data+b。读者知道W会接近0.1,b接近0.3,但是TensorFlow并不知道,它需要自己来计算得到该值。因此采用梯度下降法来迭代求解数据
以下是迭代8次的结果。梯度就像一个指南针,指引我们朝着最小的方向前进。为了计算梯度,TensorFlow会对错误函数求导,在我们的例子中就是,算法需要对W和b计算部分导数,以在每次迭代中为前进指明方向。
下面是每次迭代的可视化效果图:
TF数据生成方式:参考TF数据生成12法
TF基本原理与概念理解: tensorflow(一)windows 10 64位安装tensorflow1.4与基本概念解读tf.global_variables_initializer
模型:
一个简单的线性回归y = W * x + b,采用numpy构建完整回归数据,并增加干扰噪声import numpy as np #建立一个一元线性回归方程y=0.1x1+0.3 ,同时一个正太分布偏差np.random.normal(0.0,0.03)用于见证TF的算法 num_points=1000 vectors_set=[] for i in range(num_points): x1=np.random.normal(loc=0.0,scale=0.66) 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]
Graphic display出数据分布结果
import matplotlib.pyplot as plt #https://www.cnblogs.com/zqiguoshang/p/5744563.html ##line_styles=['ro-','b^-','gs-','ro--','b^--','gs--'] #set line style plt.plot(x_data,y_data,'ro',marker='^',c='blue',label='original_data') plt.legend() plt.show()
通过TensorFlow代码找到最佳的参数W与b,使的输入数据x_data,生成输出数据y_data,本例中将会一条直线y_data=W*x_data+b。读者知道W会接近0.1,b接近0.3,但是TensorFlow并不知道,它需要自己来计算得到该值。因此采用梯度下降法来迭代求解数据
import tensorflow as tf import math #一、创建graph数据 #随便构建一个一元回归方程的参数W与b W=tf.Variable(tf.random_uniform([1], minval=-1.0, maxval=1.0)) b=tf.Variable(tf.zeros([1])) y=W*x_data+b #定义下面的最小化方差 #1.定义最小化误差平方根 loss=tf.reduce_mean(tf.square(y-y_data)) #2.learning_rate=0.5 optimizer=tf.train.GradientDescentOptimizer(learning_rate=0.5) #3.最优化最小值 train=optimizer.minimize(loss) #二、初始化变量 init=tf.global_variables_initializer() #三、启动graph sess=tf.Session() sess.run(init) for step in range(8): sess.run(train) print("step={},sess.run=(W)={},sess.run(b)={}".format(step,sess.run(W),sess.run(b)))
以下是迭代8次的结果。梯度就像一个指南针,指引我们朝着最小的方向前进。为了计算梯度,TensorFlow会对错误函数求导,在我们的例子中就是,算法需要对W和b计算部分导数,以在每次迭代中为前进指明方向。
下面是每次迭代的可视化效果图:
#Graphic display # print(sub_1+'41') #注意:各参数可以用逗号,分隔开。第一个参数代表子图的行数;第二个参数代表该行图像的列数; 第三个参数代表每行的第几个图像,从左致右,从上到下一次增加。 plt.subplot(4,2,step+1) plt.plot(x_data,y_data,'ro') plt.plot(x_data,sess.run(W)*x_data+ sess.run(b),label=step) plt.legend() plt.show()
相关文章推荐
- 机器学习实战——梯度下降求解逻辑回归(1理论基础)
- TensorFlow:实战Google深度学习框架(二)实现简单神经网络
- Tensorflow 实战google深度学习框架 06 正则化
- TensorFlow:实战Google深度学习框架(四)MINIST数据集识别问题
- Ng深度学习笔记 1-线性回归、监督学习、成本函数、梯度下降
- Tensorflow 实战google深度学习框架 09 计算图保存,与模型读取
- Tensorflow 实战google深度学习框架 10 pb文件的保存&加载
- TensorFlow:实战Google深度学习框架(五)图像识别与卷积神经网络
- 深度学习|神经网络模型简介和梯度下降求解
- TensorFlow:实战Goole深度学习框架第三章学习笔记
- TensorFlow:实战Google深度学习框架(六)图像数据处理
- 迁移学习源码全注释 - 《Tensorflow 实战 Google 深度学习框架》源码注释
- 深度学习入门实战(二)-用TensorFlow训练线性回归
- Tensorflow 实战google深度学习框架 07 滑动平均模型
- 深度学习(三十七)优化求解系列之(1)简单理解梯度下降
- 深度学习框架哪家强?MXNet称霸CNN、RNN和情感分析,TensorFlow仅擅长推断特征提取
- 深度学习框架哪家强?MXNet称霸CNN、RNN和情感分析,TensorFlow仅擅长推断特征提取
- 深度学习框架哪家强?MXNet称霸CNN、RNN和情感分析,TensorFlow仅擅长推断特征提取
- TensorFlow-实战Google深度学习框架 笔记(上)
- 当Spark遇上TensorFlow分布式深度学习框架原理和实践