PyTorch 第一周

  • 一、深度学习初见
    • 1.1 深度学习框架简介
      • 1.1.1 PyTorch的发展
      • 1.1.2 PyTorch与同类框架
  • 二、环境配置
  • 三、回归问题
    • 3.1 简单回归问题
      • 3.1.1 梯度下降法
      • 3.1.2 线性回归、逻辑回归、分类问题
    • 3.2 分类问题引入
      • 手写数字识别

一、深度学习初见

1.1 深度学习框架简介

1.1.1 PyTorch的发展

2002年Torch->2011年Torch7
Lua语言制约了Torch发展
PyTorch于2018.12发布正式版本,采用CAFFE2后端
本教程使用的是2019.5发布的1.1

1.1.2 PyTorch与同类框架

Google:theano -> Tensorflow1 -> Tensorflow2 + Keras
Facebook:Torch7 -> Caffe -> PyTorch + Caffe2
Amazon : MXNet
Microsoft : CNTK
Chainer
tensorflow是静态图优先的而PyTorch是动态图优先的

总结:
对于研究员,推荐使用PyTorch
对于工程师,推荐使用TensorFlow2

二、环境配置

Python 3.7 + Anaconda 5.3.1
CUDA 10.0
Pycharm Community

三、回归问题

3.1 简单回归问题

3.1.1 梯度下降法

loss:x2 * sin(x)
导数:2xsinx + x2cosx
x = x - α * f(x)
α:学习率,控制梯度下降速度,一般设置为0.0001或0.01
由于噪声的存在,loss可以转化为(W * X + b - y)2的形式,当此loss函数取得极小值时,参数W和b即为所求参数

3.1.2 线性回归、逻辑回归、分类问题

线性回归的结果y∈R
逻辑回归由于加了激活函数的限制,将最终结果限制到了[0, 1]中,变为一个概率问题
分类问题特点:每个结果的概率加起来等于1
回归问题实验代码

import numpy as npdef compute_error_for_line_given_points(b, w, points):totalError = 0for i in range(0, len(points)):x = points[i, 0]y = points[i, 1]totalError += (y - (w * x + b)) ** 2return totalError / float(len(points))def step_gradient(b_current, w_current, points, learningRate):b_gradient = 0w_gradient = 0N = float(len(points))for i in range(0, len(points)):x = points[i, 0]y = points[i, 1]b_gradient += -(2/N) * (y - ((w_current * x) + b_current))w_gradient += -(2 / N) * x * (y - ((w_current * x) + b_current))new_b = b_current - (learningRate * b_gradient)new_w = w_current - (learningRate * w_gradient)return [new_b, new_w]def gradient_descent_runner(points, starting_b, startint_w, learning_rate, num_iterations):b = starting_bw = startint_wfor i in range(num_iterations):b, w = step_gradient(b, w, np.array(points), learning_rate)return [b, w]def run():points = np.genfromtxt("data.csv", delimiter=",")learning_rate = 0.0001initial_b = 0initial_w = 0num_iterations = 1000print("Staring gradient descent at b = {0}, w = {1}, error = {2}".format(initial_b, initial_w,compute_error_for_line_given_points(initial_b, initial_w, points)))print("Running...")[b, w] = gradient_descent_runner(points, initial_b, initial_w, learning_rate, num_iterations)print("After{0} iterations b = {1}, w = {2}, error = {3}".format(num_iterations, b, w,compute_error_for_line_given_points(b, w, points)))if __name__ == 'main':run()

结果:
Starting gradient descent at b = 0, w = 0, error = 5565.107834483211
Running…
After 1000 iterations b = 0.08893651993741346, w = 1.4777440851894448, error = 112.61481011613473

部分数据:

3.2 分类问题引入

MNIST数据集:0~9手写数字识别
· 每个数字有7k张图片
· 训练集60k,测试集10k
pred结果采用one-hot编码

线性相关模型难以解决具有非线性特征的问题,故引入非线性因素激活函数ReLU,然后运用梯度下降法将代价函数最小化,对于每一个新的X(手写数字),送到pred进行前向运算,取概率值最大的label为预测值

手写数字识别

H1 = relu(XW1 + b 1)
H2 = relu(H1W2 + b 2)
H1 = f(H2W3 + b 3)
步骤:

  1. 加载数据
  2. 建立模型
  3. 训练
  4. 测试

PyTorch自用笔记(第一周)相关推荐

  1. 吴恩达机器学习笔记第一周

    第一周 吴恩达机器学习笔记第一周 一. 引言(Introduction) 1.1 欢迎 1.2 机器学习是什么? 1.3 监督学习 1.4 无监督学习 二.单变量线性回归(Linear Regress ...

  2. 机器学习笔记 (第一周)

    机器学习笔记 (第一周) 目录 机器学习笔记 (第一周) 引言(Introduction) 1.1 什么是机器学习,机器学习能做些什么事情 1.2 机器学习是什么? 1.3 监督学习 1.4 无监督学 ...

  3. 从零开始写安卓APP 《第一行代码》笔记 第一周

    这是软件开发课的任务,本人其实不会java也不会安卓开发.以前只做过web端,因为某课程的爆炸实验单人撸了全栈.不过好在很早前就想学了,这里记录一下过程.放的主要是<第一行代码>的一些笔记 ...

  4. 《Text Mining and Analytics》学习笔记——第一周

    课程链接:https://www.coursera.org/learn/text-mining 主讲:伊利诺伊大学香槟分校 ChengXiang Zhai教授 NLP领域有哪些神一样的人物:知乎链接 ...

  5. WDK学习笔记第一周

    文章目录 摘要 一.对PM2.5预测的论文的总结 1.1 背景 1.2 PM2.5 1.3 综述 1.4 对桂林空气质量文章的总结 1.4.1 空气质量变化 1.4.2 污染物扩散的影响因素 二.LS ...

  6. 2022李宏毅机器学习深度学习学习笔记--第一周

    文章目录 摘要 机器学习的基本概念 机器学习 不同的函式类别 gradient descent 深度学习(Deep learning) Case study 摘要 本文主要介绍什么是机器学习,机器学习 ...

  7. 机器学习公开课笔记第一周

    一,机器学习是什么? "A computer program is said to learn from experience E with respect to some class of ...

  8. 吴恩达机器学习课程笔记——第一周

    1. 单变量线性回归(Linear Regression with One Variable) 1.1 模型表示 像上述公式,因为只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题. 例子 ...

  9. 北京大学生物信息学笔记-第一周-生物信息学概述

    什么生物信息学? [1] 基因组:生命手册 [2] 人类基因组有31亿碱基对 [3] 碱基编码基因占~2.9% [4] ~97%的基因以前被称为是"垃圾" [5] 他们包含编码指令 ...

最新文章

  1. 7年前轰动全球的Science论文,被发现可能搞错了
  2. 《数据库系统概念》7-函数、存储过程、触发器
  3. .NET 4.5 基类库中的新增功能
  4. 数据库建模模板、菜单显示出问题解决方案
  5. 学习笔记Hadoop(一)—— Hadoop介绍(1)——认识大数据
  6. ITK:使用Otsu阈值图像
  7. TensorBoard使用
  8. Java Integer类详解
  9. everything 中文免安装_GTA5中文免安装版
  10. 每个数据科学家都应该知道的 20 个 NumPy 操作
  11. linux授权命令chmod777_【HDFS篇02】HDFS命令行操作
  12. 《变革中的思索》连载二:依旧有效的四律
  13. db模块未绑定 Uncaught TypeError: Cannot read property 'openDatabase' of undefined
  14. 软件测试简历中的项目应该如何准备?
  15. 表单美化+html+css
  16. 弱监督学习-snorkel
  17. can协议crc计算_CAN协议教程|CAN报文分析
  18. ios visio流程图_Mac下有如Visio一样好用的流程图软件吗?
  19. 支付宝支付服务端对接记录(小程序/APP 预支付统一下单及回调处理)
  20. PCB多层板为什么都是偶数层

热门文章

  1. 网络营销实验报告SEO综合实践
  2. 牛客练习赛13-C题幸运数字III
  3. tea系列加密算法学习笔记
  4. 国内首个《政务APP技术指标评价规范》团体标准正式出台
  5. 写一些生活的琐事(纯属发泄)
  6. 常见的嵌入式操作系统有哪些
  7. 无人机右手定则以及角度大小方向粗判断
  8. 完美解决surface pro6 CPU降频导致性能下降的问题
  9. 运行SHA256加密脚本.
  10. ps制作人物抠图,给人物自拍照进行精细抠图