一.Pytorch是什么?

Pytorch是torch的python版本,是由Facebook开源的神经网络框架,专门针对 GPU 加速的深度神经网络(DNN)编程。Torch 是一个经典的对多维矩阵数据进行操作的张量(tensor )库,在机器学习和其他数学密集型应用有广泛应用。与Tensorflow的静态计算图不同,pytorch的计算图是动态的,可以根据计算需要实时改变计算图。但由于Torch语言采用 Lua,导致在国内一直很小众,并逐渐被支持 Python 的 Tensorflow 抢走用户。作为经典机器学习库 Torch 的端口,PyTorch 为 Python 语言使用者提供了舒适的写代码选择。

二.为什么选择 Pytorch?

1.简洁:

PyTorch的设计追求最少的封装,尽量避免重复造轮子。不像 TensorFlow 中充斥着session、graph、operation、name_scope、variable、tensor、layer等全新的概念,PyTorch 的设计遵循tensor→variable(autograd)→nn.Module 三个由低到高的抽象层次,分别代表高维数组(张量)、自动求导(变量)和神经网络(层/模块),而且这三个抽象之间联系紧密,可以同时进行修改和操作。 简洁的设计带来的另外一个好处就是代码易于理解。PyTorch的源码只有TensorFlow的十分之一左右,更少的抽象、更直观的设计使得PyTorch的源码十分易于阅读。

2.速度:

PyTorch 的灵活性不以速度为代价,在许多评测中,PyTorch 的速度表现胜过 TensorFlow和Keras 等框架。框架的运行速度和程序员的编码水平有极大关系,但同样的算法,使用PyTorch实现的那个更有可能快过用其他框架实现的。

3.易用:

PyTorch 是所有的框架中面向对象设计的最优雅的一个。PyTorch的面向对象的接口设计来源于Torch,而Torch的接口设计以灵活易用而著称,Keras作者最初就是受Torch的启发才开发了Keras。PyTorch继承了Torch的衣钵,尤其是API的设计和模块的接口都与Torch高度一致。PyTorch的设计最符合人们的思维,它让用户尽可能地专注于实现自己的想法,即所思即所得,不需要考虑太多关于框架本身的束缚。

4.活跃的社区:

PyTorch 提供了完整的文档,循序渐进的指南,作者亲自维护的论坛 供用户交流和求教问题。Facebook 人工智能研究院对 PyTorch 提供了强力支持,作为当今排名前三的深度学习研究机构,FAIR的支持足以确保PyTorch获得持续的开发更新,不至于像许多由个人开发的框架那样昙花一现。

三.PyTorch 的架构是怎样的?

PyTorch(Caffe2) 通过混合前端,分布式训练以及工具和库生态系统实现快速,灵活的实验和高效生产。PyTorch 和 TensorFlow 具有不同计算图实现形式,TensorFlow 采用静态图机制(预定义后再使用),PyTorch采用动态图机制(运行时动态定义)。PyTorch 具有以下高级特征:

混合前端:新的混合前端在急切模式下提供易用性和灵活性,同时无缝转换到图形模式,以便在C ++运行时环境中实现速度,优化和功能。

分布式训练:通过利用本地支持集合操作的异步执行和可从Python和C ++访问的对等通信,优化了性能。

Python优先: PyTorch为了深入集成到Python中而构建的,因此它可以与流行的库和Cython和Numba等软件包一起使用。

丰富的工具和库:活跃的研究人员和开发人员社区建立了丰富的工具和库生态系统,用于扩展PyTorch并支持从计算机视觉到强化学习等领域的开发。

本机ONNX支持:以标准ONNX(开放式神经网络交换)格式导出模型,以便直接访问与ONNX兼容的平台,运行时,可视化工具等。

C++前端:C++前端是PyTorch的纯C++接口,它遵循已建立的Python前端的设计和体系结构。它旨在实现高性能,低延迟和裸机C++应用程序的研究。 使用GPU和CPU优化的深度学习张量库。

四.Pytorch 与 tensorflow 之间的差异在哪里?

上面也将了PyTorch 最大优势是建立的神经网络是动态的, 对比静态的 Tensorflow, 它能更有效地处理一些问题, 比如说 RNN 变化时间长度的输出。各有各的优势和劣势。两者都是大公司发布的, Tensorflow(Google)宣称在分布式训练上下了很大的功夫, 那就默认 Tensorflow 在分布式训练上要超出 Pytorch(Facebook),还有tensorboard可视化工具, 但是 Tensorflow 的静态计算图使得在 RNN 上有一点点被动 (虽然它用其他途径解决了), 不过用 PyTorch 的时候, 会对这种动态的 RNN 有更好的理解。而且 Tensorflow 的高度工业化, 它的底层代码很难看懂, Pytorch 好那么一点点, 如果深入 PytorchAPI, 至少能比看 Tensorflow 多看懂一点点 Pytorch 的底层在干啥。

五.Pytorch有哪些常用工具包?

torch :类似 NumPy 的张量库,强 GPU 支持 ;

torch.autograd :基于 tape 的自动区别库,支持 torch 之中的所有可区分张量运行;

torch.nn :为最大化灵活性未涉及、与 autograd 深度整合的神经网络库;

torch.optim:与 torch.nn 一起使用的优化包,包含 SGD、RMSProp、LBFGS、Adam 等标准优化方式;

torch.multiprocessing: python 多进程并发,进程之间 torch Tensors 的内存共享;

torch.utils:数据载入器。具有训练器和其他便利功能;

torch.legacy(.nn/.optim) :处于向后兼容性考虑,从 Torch 移植来的 legacy 代码;

到此这篇关于pytorch简介的文章就介绍到这了,更多相关pytorch简介内容请搜索python博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持python博客!

pytorch和python有什么区别_pytorch简介相关推荐

  1. pytorch和python有什么区别_PyTorch到底好用在哪里?

    先来回答一下你提的几个问题:Pytorch连最基本的maximum, minimum, tile等等这些numpy和tensorflow中最简单的运算都没有,用view来reshape还会报错cont ...

  2. pytorch python区别_pytorch源码解析:Python层 pytorchmodule源码

    尝试使用了pytorch,相比其他深度学习框架,pytorch显得简洁易懂.花时间读了部分源码,主要结合简单例子带着问题阅读,不涉及源码中C拓展库的实现. 一个简单例子 实现单层softmax二分类, ...

  3. micropython和python区别-MicroPython简介

    下面是网上关于MicroPython的介绍. Damien George是一名计算机工程师,他每天都要使用Python语言工作,同时也在做一些机器人项目.有一天,他突然冒出了一个想法:能否用Pytho ...

  4. python idle有哪些_Python IDLE入门简介 Python IDLE与python有什么区别

    大神可以给小编介绍一下Python IDLE怎么用吗?真正长得漂亮的人很少发自拍,真正有钱的人基本不怎么炫富,真正恩爱的情侣用不着怎样秀恩爱发截图,真正玩的愉快的时候是没有多少时间传照片的,真正过得精 ...

  5. Python is 和 == 区别 - Python零基础入门教程

    目录 一.前言 二.Python 运算符 == 三.Python 运算符 is 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 ...

  6. Python Pycharm Anacanda 区别

    工欲善其事必先利其器,在学习 Python 开发之前我们首先来熟悉几个关键字: 1.Python 2.Pycharm 3.Anacanda 零基础 Python 学习路线推荐 : Python 学习目 ...

  7. Tensorflow 1.x 和 Pytorch 中 Conv2d Padding的区别

    Tensorflow 和 Pytorch 中 Conv2d Padding的区别 Pytorch中Conv2d的Padding 可以是整数,二元组,字符串三种形式. 整数(int).如果输入的padd ...

  8. Python笔记:itertools库简介

    Python笔记:itertools库简介 1. itertools库是什么 2. itertools库函数简介 1. 元素迭代相关 1. count 2. cycle 3. repeat 2. 排列 ...

  9. db2top详细使用方法_Py之PIL:Python的PIL库的简介、安装、使用方法详细攻略

    Py之PIL:Python的PIL库的简介.安装.使用方法详细攻略 目录 PIL库的简介 PIL库的安装 PIL库的用方法 1.几何图形的绘制与文字的绘制 2.绘制图形的各种案例 PIL库的简介 PI ...

  10. php7和python3性能对比-Python 2.7与Python 3.7区别

    今天,我将带大家看看Python 2.7与Python 3.7这两个版本区别. 区别一:print语法使用 Python2.7 print语法使用 >>> print "H ...

最新文章

  1. Python爬取4399好wan的小游戏!
  2. 将一个一维数组转化为二进制表示矩阵。例如_算法之矩阵最大区域问题
  3. 5分钟 搭建免费个人博客
  4. nginx的upstream问题记录
  5. python 父类构造函数,python 对于子类构造函数重写父类构造函数的了解
  6. ubuntu14.04,安装JDK1.8(JAVA程序需要的开发、运行环境)
  7. 《javascript高级程序设计》第五章知识点总结
  8. Google新作:注意力机制是否真的能够提供模型的可解释性?
  9. Linux 查看磁盘空间实现代码介绍
  10. IE选项中的高级选项卡“启用内存保护帮助减少联机攻击”是灰色的,不能把前面的勾选取消掉
  11. [转载] Python round四舍五入精度缺失的解决
  12. L1-037 A除以B (10 分)—团体程序设计天梯赛
  13. [谈现在的PSP与NDSi]
  14. 微信小程序学习笔记——环境准备 【注册账号】【获取APPID】
  15. 昨日种种,昨日死.今日种种,今日生.--看了几篇影评有感
  16. 算法笔记(胡凡)刷题收获@Kaysen
  17. 已知随机变量X的协方差矩阵求去X的特征值 特征向量 PCA投影矩阵
  18. 十五、Fluent湿空气模拟-组分输运模型
  19. 从概率上分析“穷不过三代,富不过三代”,且富三代难于穷三代
  20. 摄像头网络直播方案LiveGBS部署问题

热门文章

  1. 在windows如何操控一些屌炸天的linux命令[利刃篇]
  2. mysql中的alter_MySQL中Alter用法
  3. 对数据中心动环监控系统的认识
  4. [笔记] 数据结构二刷【第一篇:线性表·栈·队列·递归】
  5. 华为7c手机怎么恢复出厂设置_华为荣耀畅玩7A/7C解锁教程_荣耀畅玩7A/7C用官方解锁码解锁方法...
  6. 怎么禁用笔记本的键盘
  7. 双目摄像头相关参数介绍
  8. vue baidu-map百度地图自定义换肤、去掉百度地图logo
  9. BIP语言教程(一)
  10. 操作系统的作用及基本特性