PyTorch_Note01_概要

本篇为在 深度之眼 学习PyTorch笔记之一
This is one of the notes from the Deepshare

1.PyTorch简介

2017年1月,FAIR(Facebook AI Research)发布PyTorch

PyTorch是在Torch基础上用用python语言重新打造的一款深度学习框架

Torch是采用Lua语言为接口的机器许西框架,但因Lua语言较为小众,导致Torch知名度不高

2. PyTorch的发展

2017年1月,发布PyTorch

2018年4月0.4.0版,支持Windows系统,并且caffe2并入

2018年11月更新1.0稳定版,为GitHub上增长第二快的开源项目

2019年5月更新1.1.0版,支持TensorBoard,增强可视化功能

2019年8月更新1.2.0版,更新torchvision,torchaudio和torchtext,增加更多功能。

3.PyTorch的优点

上手快: 掌握NumPy和基本深度学习概念即可上手

代码简洁灵活: 用nn.module封装是网络搭建更方便;基于动态图机制,更灵活

DeBug方便: 调试PyTorch就像调试Python代码一样简单

文档规范: https://pytorch.org/docs/stable/index.html 可查各个版本文档

资源多: arXiv中的新算法大多由PyTorch实现

开发者多: GitHub上贡献者(Contributors)已超过1100+

背靠大树: FaceBook维护开发

...

4.与TensorFlow的简要对比

发布时间:

TensorFlow是Google Brain基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理,于2015年11月9日在Apache 2.0开源许可证下发布,并于2017年12月份预发布动态图机制Eager Execution。

PyTorch是Facebook于2017年1月18日发布的python端的开源的深度学习库,基于Torch。支持动态计算图,提供很好的灵活性。

灵活性:

TensorFlow主要支持静态计算图的形式,计算图的结构比较直观,但是在调试过程中十分复杂与麻烦,一些错误更加难以发。但是2017年底发布了动态图机制Eager Execution,加入对于动态计算图的支持,但是目前依旧采用原有的静态计算图形式为主。TensorFlow拥有TensorBoard应用,可以监控运行过程,可视化计算图。

PyTorch为动态计算图的典型代表,便于调试,并且高度模块化,搭建模型十分方便,同时具备及其优秀的GPU支持,数据参数在CPU与GPU之间迁移十分灵活

学习难易度:

学习难易程度考虑的是框架所使用的语言,文档详细程度以及社区支持三个方面。

(1) 对于框架本身语言:TensorFlow与Python等语言差距很大,有点像基于一种语言重新定义了一种编程语言,并且在调试的时候比较复杂。每次版本的更新,TensorFlow的各种接口经常会有很大幅度的改变,这也大大增加了对其的学习时间;PyTorch支持动态计算图,追求尽量少的封装,代码简洁易读,应用十分灵活,接口沿用Torch,具有很强的易用性,同时可以很好的利用主语言Python的各种优势。

(2) 对于文档的详细程度:TensorFlow具备十分详尽的官方文档,查找起来十分方便,同时保持很快的更新速度,但是条理不是很清晰,教程众多;PyTorch基于Torch并由Facebook强力支持,具备十分详细条理清晰的官方文档和官方教程。

(3)社区支持:由Google开发并维护的TensorFlow具有最大社区,应用人员团体庞大;PyTorch由Facebook支持,并且即将与Caffe2无缝连接,以其灵活、简洁、易用的特点在发布紧一年多的时间内吸引了大量开发者和研究人员,火爆程度依旧在不断攀升,社区也在不断壮大。

你可能感兴趣的:(PyTorch_Note01_概要)