【深度学习】Tensorflow完成线性回归对比机器学习LinearRegression()
首先构建一个线性的点状图
import warnings
warnings.filterwarnings('ignore')
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.linear_model import LinearRegression
import tensorflow as tf X = np.linspace(2,12,50).reshape(-1,1)w = np.random.randint(1,6,size = 1)[0]b = np.random.randint(-5,5,size = 1)[0]
y = X*w + b + np.random.randn(50,1)*0.7plt.scatter(X,y)
查看X,y的类型
print(X.shape,y.shape)
(50, 1) (50, 1)
使用线性回归查看预测的系数为了对比TF
linear = LinearRegression()linear.fit(X,y)print(linear.coef_,linear.intercept_)
[[3.05044116]] [-1.33814071]
print(w,b) #最后测试对比
3 -1
Tensorflow完成线性回归
1、定义占位符、变量
# 线性回归理论基础是最小二乘法
X_train = tf.placeholder(dtype=tf.float32,shape = [50,1],name = 'data')y_train = tf.placeholder(dtype=tf.float32,shape = [50,1],name = 'target')w_ = tf.Variable(initial_value=tf.random_normal(shape = [1,1]),name = 'weight')b_ = tf.Variable(initial_value=tf.random_normal(shape = [1]),name = 'bias')
2、构造方程(线性方程,矩阵乘法)
# 构建方程 f(x) = Xw + b
# 构建的方程,就是预测的结果
y_pred = tf.matmul(X_train,w_) + b_
# shape = (50,1)
y_pred
<tf.Tensor ‘add:0’ shape=(50, 1) dtype=float32>
3、最小二乘法(平均最小二乘法)
cost=1m∑i=0M(y−ypred)2cost = \frac{1}{m}\sum_{i = 0}^M(y - y_{pred})^2cost=m1i=0∑M(y−ypred)2
# 二乘法(y_pred - y_train)**2 返回的结果是列表,没有办法比较大小
# 平均最小二乘法,数值,mean
# 平均:每一个样本都考虑进去了
cost = tf.reduce_mean(tf.pow(y_pred - y_train,2))
cost
<tf.Tensor ‘Mean_1:0’ shape=() dtype=float32>
4、梯度下降(tf,提供了方法)
# 优化,cost损失函数,越小越好
opt = tf.train.GradientDescentOptimizer(0.01).minimize(cost)
opt
<tf.Operation ‘GradientDescent_1’ type=NoOp>
5、会话进行训练(for循环),sess.run(),占位符(赋值)
with tf.Session() as sess:# 变量,初始化sess.run(tf.global_variables_initializer())for i in range(1000):opt_,cost_ = sess.run([opt,cost],feed_dict = {y_train:y,X_train:X})if i %50 == 0:print('执行次数是:%d。损失函数值是:%0.4f'%(i+1,cost_))
# for循环结束,训练结束了
# 获取斜率和截距W,B = sess.run([w_,b_])print('经过100次训练,TensorFlow返回线性方程的斜率是:%0.3f。截距是:%0.3f'%(W,B))
执行次数是:1。损失函数值是:581.9765
执行次数是:51。损失函数值是:1.3099
执行次数是:101。损失函数值是:1.0826
。。。
执行次数是:951。损失函数值是:0.4290
经过100次训练,TensorFlow返回线性方程的斜率是:3.033。截距是:-1.194
6、可视化
plt.scatter(X,y)x = np.linspace(0,14,100)plt.plot(x,W[0]*x + B,color = 'green')
【深度学习】Tensorflow完成线性回归对比机器学习LinearRegression()相关推荐
- python深度学习tensorflow和fme结合,实现档案扫描件数据自动分类
文章目录 前言 一.深度学习基础知识简介 1.什么是深度学习 2.深度学习的原理 3.深度学习应用场景 二.深度学习环境搭建 1.深度学习库的安装 2.CUDA和对应版本的cudnn下载 三.实战教学 ...
- 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(八)(TensorFlow基础))
[神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(八)(TensorFlow基础)) 8 TensorFlow基础 8.1 TensorFlow2.0特性 8.1.1 Tenso ...
- 2017深度学习最新报告及8大主流深度学习框架超详细对比(内含PPT)
2017深度学习最新报告(PPT) 深度学习领军人物 Yoshua Bengio 主导的蒙特利尔大学深度学习暑期学校目前"深度学习"部分的报告已经全部结束. 本年度作报告的学术 ...
- 深度学习三大框架(对比)
人工智能的浪潮正席卷全球,诸多词汇时刻萦绕在我们的耳边,如人工智能,机器学习,深度学习等."人工智能"的概念早在1956年就被提出,顾名思义用计算机来构造复杂的,拥有与人类智慧同样 ...
- 使用深度学习TensorFlow框架进行图片识别
Apsara Clouder大数据专项技能认证:使用深度学习TensorFlow框架进行图片识别 本认证系统的介绍了深度学习的一些基础知识,以及Tensorflow的工作原理.通过阿里云机器学习PAI ...
- 百度云-深度学习tensorflow搭建
百度云上部署Tensorflow进行模型训练 上半年就了解过百度云但是还是tf1.0版本的,而谷歌3月份的升级到1.2改动挺大的,百度云上更新滞后,所以尽管有tf平台,版本落后每小时付费还是有点小贵, ...
- 当前的深度学习框架不会改变机器学习的能力增长
文章来源:ATYUN AI平台 框架只是在应用程序中广泛采用机器学习的中间步骤.我们需要的是更多的视觉产品,而这些可能还需要几年的时间. 当前的机器学习(ML)框架是ML的产品化过程中需要的一个中间步 ...
- 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(十四)(卷积神经网络))
[神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(十四)(卷积神经网络)) 14 卷积神经网络 14.1 深度学习基础 14.1.1 深度学习的基本思想 14.1.2 深度学习三 ...
- python模型训练框架_深度学习三大框架(对比)
人工智能的浪潮正席卷全球,诸多词汇时刻萦绕在我们的耳边,如人工智能,机器学习,深度学习等."人工智能"的概念早在1956年就被提出,顾名思义用计算机来构造复杂的,拥有与人类智慧同样 ...
最新文章
- ubuntu 18.04.4 安装 bazel
- Linux内核分析 - 网络[六]:网桥
- Linux 下禅道和 SVN、GIT 集成插件发布
- 进程间通信-字符串的传递
- android note2
- uni-app 基于 Promise 的 request 请求封装
- 引导页onboarding页面Snapkit实现
- 180.连续出现的数字
- 云服务器上Mongodb被拖库,黑客向我勒索0.015 BTC
- 智方8000系汽车配件进销存管理系统 襄樊石开软件公司
- Excel竟然能够按照单元格的指定颜色顺序排序
- JavaScript:实现GnomeSort侏儒排序算法(附完整源码)
- emouse思·睿—评论与观点整理之二
- centos7下MySQL的安装(通用二进制安装)
- Python学习:代码过长的换行方式
- 【Python 跟书学习笔记】
- 字符编码 - GB2312简体中文编码表
- 基本面分析:原理、类型和使用方法
- 三本计算机怎么调音乐,读三本音乐教材
- 拆机 短接 触点 线刷 斐讯 N1_美炸了!北美N1放大1000倍圣诞水晶球登场,惊艳了整个华北!...
热门文章
- 系统程序员成长计划-走近专业程序员
- IntelliJ IDEA 设置代码检查级别
- get和post 两种基本请求方式的区别
- android studio : clang++.exe: error: invalid linker name in argument '-fuse-ld=bfd
- applicationContext配置文件模板1
- 【问题收集·知识储备】Xcode只能选择My Mac,不能选择模拟器如何解决?
- Java各进制之间的转换
- 大数据:互联网大规模数据挖掘与分布式处理
- MediaWiki安装配置(Linux)【转】
- 初级第一旬05— 蓝字观试题