PyTorch到底好用在哪里?

PyTorch到底好在哪,其实我也只是有个朦胧的感觉,总觉得用舒服自在,用其它框架的时候总是觉得这里或者那里别扭。第一次用PyTorch几乎是无痛上手,而且随着使用的增加,更是越来越喜欢:PyTorch不仅仅是定义网络结构简单,而且还很直观灵活。静态图的网络定义都是声明式的,而动态图可以随意的调用函数(if,for,list什么的随便用),两者的差距不是一点点。

网络的定义在任何框架中都应该是属于最基础最简单的一个内容,即使是接口繁多的tensorflow,通过不断的查文档,新手也能把模型搭起来或者是看懂别人的模型。这个PyTorch也不例外,它的优势在于模型定义十分直观易懂,很容易看懂看别人写的代码。

PyTorch这种动态图框架在debug的时候超级超级超级方便!因为基本上计算图运行出错的地方,就在图定义的那行代码上。

PyTorch优点有那些:

动态图,Tensor Numpy互转,pythonic,debug方便,可读性强,上手快,适合research,也不算优点吧,何大神在Facebook,估计开源的代码是pytorch实现的。

在pytorch将tensor转成numpy是多么的自然,而在tensorflow中又是多么的别扭,例如突然有一天我想将图中的中间节点拿出来,然后做个numpy运算,在继续运行图.就会发现pytorch是如此优雅,research不就是这么的充满骚操作么,project就得中规中矩的tensorflow。

其实PyTorch本质上是Numpy的替代者,而且支持GPU、带有高级功能,可以用来搭建和训练深度神经网络。如果你熟悉Numpy、Python以及常见的深度学习概念(卷积层、循环层、SGD等),会非常容易上手PyTorch。

Pytorch 本身设计之初就是以py为主,这就要求在cpp和python之间尽可能的向python 靠拢,所以在pytorch中,所有Module 类都含有对一个forward 和backward的方法,哪怕是不懂cffi ,也可以轻松使用cpp cuda拓展的op。

pytorch也是从torch迁移而来的,它非常适合于研究任务或者小型的部署任务。对于研究者或者学术而言,做出原型才是王道。pytorch几乎和python是一脉相承的,可以各种使用python的原生代码,写起来如沐春风,简洁明快。

而tensorflow 的方向是对的,符号编程,lazy就是比命令编程,eager先进,更适合并发并行的潮流。当然用户体验是第一位的,用户就是要爽,你先进但体验不好,对不起我不用。另外动态建图带来的好处是大大降低了调试的难度,相比于tf,你可以在任何地方监控变量的变化,而不用去开什么session。

动态建图使得你可以按照很常规的思路去实现自己定制的神经网络,完全不用动脑子去考虑如何迁移到静态图构建这种烂事儿上。符号编程和lazy是可以满足用户体验要求的。但是很可惜,tensorflow 自己实现的差,作为最有影响力的框架,败坏了符号编程的名声。

PyTorch更有利于研究人员、爱好者、小规模项目等快速搞出原型。而TensorFlow更适合大规模部署,特别是需要跨平台和嵌入式部署时。

免费分享一些我整理的人工智能学习资料给大家,整理了很久,非常全面。包括一些人工智能基础入门视频+AI常用框架实战视频、图像识别、OpenCV、NLQ、YOLO、机器学习、pytorch、计算机视觉、深度学习与神经网络等视频、课件源码、国内外知名精华资源、AI热门论文、行业报告等。

为了更好的系统学习AI,推荐大家收藏一份。

下面是部分截图,文末附免费下载方式。

一、人工智能免费视频课程和项目

二、人工智能必读书籍

三、人工智能论文合集

四、人工智能行业报告

学好人工智能,要多看书,多动手,多实践,要想提高自己的水平,一定要学会沉下心来慢慢的系统学习,最终才能有所收获。

点击下方名片,扫码免费下载文中资料。

猜你喜欢

转载自blog.csdn.net/gu1857035894/article/details/125929191
今日推荐