PyTorch 教程

PyTorch 教程,PyTorch是Torch7团队开发的,与Torch的不同之处在于PyTorch使用了Python作为开发语言,不仅能够实现强大的GPU加速,同时还支持动态神经网络,这是现在很多主流框架比如Tensorflow等都不支持的。
PyTorch 教程

PyTorch既可以看做加入了GPU支持的numpy,同时也可以看成一个拥有自动求导功能的强大的深度神经网络,除了Facebook之外,它还已经被Twitter, CMU和Salesforce等机构采用。如下图所示:
PyTorch 教程

为什么要使用pytorch

面对如此多的深度学习框架,我们为何要选择PyTorch 呢?Tensorflow 不是深度学习框架默认的老大吗,为什么不直接选择Tensorflow 而是要选择PyTorch 呢?下面分4个方面来介绍为何要使用PyTorch。

(1) 掌握一个框架并不能一劳永逸,现在深度学习并没有谁拥有绝对的垄断地位,就算是Google 也没有,所以只学习Tensorflow 并不够。同时现在的研究者使用各个框架的都有,如果你要去看他们实现的代码,至少也需要了解他们使用的框架,所以多学一个框架,以备不时之需。

(2) Tensorflow 与Caffe 都是命令式的编程语言,而且是静态的,首先必须构建一个神经网络,然后一次又一次使用同样的结构,如果想要改变网络的结构,就必须从头开始。但是对于PyTorch,通过一种反向自动求导的技术,可以让你零延迟地任意改变神经网络的行为,尽管这项技术不是PyTorch 独有,但目前为止它实现是最快的,能够为你任何疯狂想法的实现获得最高的速度和最佳的灵活性,这也是PyTorch 对比Tensorflow 最大的优势。

(3) PyTorch 的设计思路是线性、直观且易于使用的,当你执行一行代码时,它会忠实地执行,并没有异步的世界观,所以当你的代码出现Bug 的时候,可以通过这些信息轻松快捷地找到出错的代码,不会让你在Debug 的时候因为错误的指向或者异步和不透明的引擎浪费太多的时间。

(4) PyTorch 的代码相对于Tensorflow 而言,更加简洁直观,同时对于Tensorflow高度工业化的很难看懂的底层代码,PyTorch 的源代码就要友好得多,更容易看懂。深入API,理解PyTorch 底层肯定是一件令人高兴的事。一个底层架构能够看懂的框架,你对其的理解会更深。

最后,我们简要总结一下PyTorch 的特点:

  • 支持GPU;
  • 动态神经网络;
  • Python 优先;
  • 命令式体验;
  • 轻松扩展;

拥有着如此多优点的 PyTorch 也有着它的缺点,首先PyTorch 于2017 年3 月开源发布,目前还是beta 测试版,没有发布正式版本,所以可能有一些小的Bug;其次因为这款框架比较新,所以使用的人也就比较少,这也就使得它的社区没有那么强大,但是PyTorch 提供了一个官方的论坛,大多数碰到的问题都可以去里面搜索,里面的答案一般都是由作者或者其他PyTorch 使用者提供的,论坛的更新也特别频繁,同时也可以去Github 上面提Issue,一般很快就会得到开发者的回应,也算是一定程度上解决了社区的问题。

学习资源与建议

极客教程 Python 基础知识
极客教程Python教程,可以用来全面学习Python基础知识,带你快速搭建Python编译开发环境,了解Python语言的语法,快速掌握Python语言的使用,为后续学习Python系列的其他教程打下坚实的基础。

极客教程 Numpy 基础知识
NumPy是Python语言的一个扩充程序库。支持大量高级的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。极客教程Numpy教程介绍了Numpy基础知识,理论分析加实战演练,内容通俗易懂,带你轻松入门。

极客教程 线性代数
线性代数相当于深度学习的基石,深度学习里面有大量的矩阵运算,线性代数的一些矩阵分解的思想也被借鉴到了机器学习中。

极客教程 机器学习
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。虽然深度学习现在很火,但是也需要掌握其根本,机器学习才是本质和核心。

极客教程 深度学习
深度学习是机器学习领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能,深度学习是最近几年最为活跃的研究领域,爆发了很多革命的突破。

文章目录

本教程介绍PyTorch环境搭建、基础知识、加载数据及图像、神经网络、线性回归、特征提取,梯度计算等,以及和keras、torch等的区别及PyTorch深度学习实战等,文章主要目录如下:

  • PyTorch 是什么
  • PyTorch 环境搭建
  • PyTorch 入门
  • PyTorch 张量(Tensor)
  • PyTorch 变量
  • PyTorch 数据集
  • PyTorch 优化
  • PyTorch 损失函数

  • PyTorch 线性回归

  • PyTorch 分类模型
  • PyTorch 特征提取
  • PyTorch 梯度计算
  • PyTorch 卷积神经网络
  • PyTorch 循环神经网络
  • PyTorch 生成对抗网络

  • PyTorch 模型保存和加载

  • PyTorch 加载数据集
  • PyTorch 加载图像数据
  • PyTorch 反向传播
  • PyTorch 更新权重
  • PyTorch 训练网络

  • PyTorch 和keras的区别

  • PyTorch 和torch的区别

  • PyTorch 猫狗大战

  • PyTorch seq2seq

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程