首先构建一个线性的点状图

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=m1​i=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()相关推荐

  1. python深度学习tensorflow和fme结合,实现档案扫描件数据自动分类

    文章目录 前言 一.深度学习基础知识简介 1.什么是深度学习 2.深度学习的原理 3.深度学习应用场景 二.深度学习环境搭建 1.深度学习库的安装 2.CUDA和对应版本的cudnn下载 三.实战教学 ...

  2. 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(八)(TensorFlow基础))

    [神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(八)(TensorFlow基础)) 8 TensorFlow基础 8.1 TensorFlow2.0特性 8.1.1 Tenso ...

  3. 2017深度学习最新报告及8大主流深度学习框架超详细对比(内含PPT)

    2017深度学习最新报告(PPT) ​ 深度学习领军人物 Yoshua Bengio 主导的蒙特利尔大学深度学习暑期学校目前"深度学习"部分的报告已经全部结束. 本年度作报告的学术 ...

  4. 深度学习三大框架(对比)

    人工智能的浪潮正席卷全球,诸多词汇时刻萦绕在我们的耳边,如人工智能,机器学习,深度学习等."人工智能"的概念早在1956年就被提出,顾名思义用计算机来构造复杂的,拥有与人类智慧同样 ...

  5. 使用深度学习TensorFlow框架进行图片识别

    Apsara Clouder大数据专项技能认证:使用深度学习TensorFlow框架进行图片识别 本认证系统的介绍了深度学习的一些基础知识,以及Tensorflow的工作原理.通过阿里云机器学习PAI ...

  6. 百度云-深度学习tensorflow搭建

    百度云上部署Tensorflow进行模型训练 上半年就了解过百度云但是还是tf1.0版本的,而谷歌3月份的升级到1.2改动挺大的,百度云上更新滞后,所以尽管有tf平台,版本落后每小时付费还是有点小贵, ...

  7. 当前的深度学习框架不会改变机器学习的能力增长

    文章来源:ATYUN AI平台 框架只是在应用程序中广泛采用机器学习的中间步骤.我们需要的是更多的视觉产品,而这些可能还需要几年的时间. 当前的机器学习(ML)框架是ML的产品化过程中需要的一个中间步 ...

  8. 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(十四)(卷积神经网络))

    [神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(十四)(卷积神经网络)) 14 卷积神经网络 14.1 深度学习基础 14.1.1 深度学习的基本思想 14.1.2 深度学习三 ...

  9. python模型训练框架_深度学习三大框架(对比)

    人工智能的浪潮正席卷全球,诸多词汇时刻萦绕在我们的耳边,如人工智能,机器学习,深度学习等."人工智能"的概念早在1956年就被提出,顾名思义用计算机来构造复杂的,拥有与人类智慧同样 ...

最新文章

  1. ubuntu 18.04.4 安装 bazel
  2. Linux内核分析 - 网络[六]:网桥
  3. Linux 下禅道和 SVN、GIT 集成插件发布
  4. 进程间通信-字符串的传递
  5. android note2
  6. uni-app 基于 Promise 的 request 请求封装
  7. 引导页onboarding页面Snapkit实现
  8. 180.连续出现的数字
  9. 云服务器上Mongodb被拖库,黑客向我勒索0.015 BTC
  10. 智方8000系汽车配件进销存管理系统 襄樊石开软件公司
  11. Excel竟然能够按照单元格的指定颜色顺序排序
  12. JavaScript:实现GnomeSort侏儒排序算法(附完整源码)
  13. emouse思·睿—评论与观点整理之二
  14. centos7下MySQL的安装(通用二进制安装)
  15. Python学习:代码过长的换行方式
  16. 【Python 跟书学习笔记】
  17. 字符编码 - GB2312简体中文编码表
  18. 基本面分析:原理、类型和使用方法
  19. 三本计算机怎么调音乐,读三本音乐教材
  20. 拆机 短接 触点 线刷 斐讯 N1_美炸了!北美N1放大1000倍圣诞水晶球登场,惊艳了整个华北!...

热门文章

  1. 系统程序员成长计划-走近专业程序员
  2. IntelliJ IDEA 设置代码检查级别
  3. get和post 两种基本请求方式的区别
  4. android studio : clang++.exe: error: invalid linker name in argument '-fuse-ld=bfd
  5. applicationContext配置文件模板1
  6. 【问题收集·知识储备】Xcode只能选择My Mac,不能选择模拟器如何解决?
  7. Java各进制之间的转换
  8. 大数据:互联网大规模数据挖掘与分布式处理
  9. MediaWiki安装配置(Linux)【转】
  10. 初级第一旬05— 蓝字观试题