PyTorch 由 Torch7 团队开发。从名字就可以看出,PyTorch 与 Torch 的区别在于 PyTorch 使用 Python 作为开发语言。
所谓“Python优先”也说明它是一个优先考虑Python的深度学习框架。不仅可以实现强大的GPU加速,还支持动态神经网络,这是Tensorflow等很多主流框架所不支持的。
PyTorch 不仅可以看作是有 GPU 支持的 numpy,还可以看作是一个强大的具有自动推导功能的深度神经网络。除了Facebook,它还被Twitter、CMU和Salesforce等机构采用。
为何要使用PyTorch
面对这么多深度学习框架,我们为什么要选择PyTorch? Tensorflow 不是深度学习框架的默认老大吗?为什么不直接选择Tensorflow而是选择PyTorch呢?下面四个方面会介绍为什么要用PyTorch。
(1) 掌握一个框架不可能一劳永逸。现在没有人对深度学习有绝对垄断,谷歌也不行,所以学习Tensorflow是不够的。同时,研究人员现在使用各种框架。要想看他们实现的代码,至少要了解他们使用的框架,多学一个框架以备不时之需。
(2) Tensorflow和Caffe都是命令式编程语言,都是静态的。首先,你必须建立一个神经网络,然后一次又一次地使用相同的结构。如果你想改变网络的结构,你必须从头开始。但对于 PyTorch 来说,通过一种逆向自动推导技术,你可以零延迟地任意改变神经网络的行为。虽然这项技术不是 PyTorch 独有的,但它是迄今为止最快的实现,可以为你任何疯狂想法的实现获得最高的速度和灵活性,这也是 PyTorch 相对于 Tensorflow 的优势。
(3) PyTorch的设计思想是线性、直观、易用的。当你执行一行代码时,它会被忠实地执行,没有异步世界观,所以当你的代码有bug时,你可以利用这些信息很容易地发现 快速找到错误的代码,而不会由于错误的指针或异步和不透明的引擎,在调试时浪费了太多时间。
(4) 与Tensorflow相比,PyTorch的代码更加简洁直观。同时,对于Tensorflow高度工业化和难以理解的底层代码,PyTorch的源码要友好得多,也更容易理解。深入研究 API 并理解 PyTorch 的底层肯定是一件令人愉快的事情。一个能被底层架构理解的框架,会让你对它有更深的理解。
最后,我们简要总结一下PyTorch 的特点:
·
支持GPU;
·
动态神经网络;
·
Python 优先;
·
命令式体验;
·
轻松扩展。
优点这么多,PyTorch也有它的缺点,因为这个框架比较新,所以用的人比较少,所以它的社区没有那么强大,但是PyTorch提供了一个官方论坛,遇到的问题大部分都可以在里面搜索到.里面的答案一般由作者或其他 PyTorch 用户提供。论坛更新也很频繁。同时,你也可以去Github提一个issue,很快就会得到开发者的回应,也算是在一定程度上解决了社区的问题。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 我应该使用什么软件来运行python?09/11
- ♥ Python写SQL出现乱码的解决方法12/15
- ♥ python如何调用随机数08/11
- ♥ python库是如何实现对象的转换的12/21
- ♥ Python中pickle模块的使用注意事项12/12
- ♥ 如何在python中编写power?08/29
内容反馈