如何进行TensorFlow与PyTorch对比

如何进行TensorFlow与PyTorch对比,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

成都服务器托管,成都创新互联提供包括服务器租用、成都移动服务器托管、带宽租用、云主机、机柜租用、主机租用托管、CDN网站加速、域名注册等业务的一体化完整服务。电话咨询:028-86922220

用TensorFlow还是PyTorch?从TensorFlow开始学起还是PyTorch?在一年前,这个问题毫无争议,当然是TensorFlow. 但时过境迁,现在的情况大不一样了,下面就来分析对比一下这两个主流框架。

首先看一下最近的统计数据,下图的数据是从arxiv论文中统计得到的。上面的黄线是TensorFlow的使用比例,下面的红线是PyTorch的使用比例,可以看出,最近的数据两者已经不差上下,甚至红线PyTorch在2019.6要略胜一筹。

右边的条形图是从1月到6月的累计数据,TensorFlow占比还是要略高一点,但是23%的增长率明显要低于PyTorch的194%.也就是说,现在TensorFlow和PyTorch在学术界的使用率上来说已经不差上下了

如何进行TensorFlow与PyTorch对比

来源:https://www.oreilly.com/ideas/one-simple-graphic-researchers-love-pytorch-and-tensorflow

决定一个框架的使用率有哪些因素呢?我总结有以下四个方面:

  1. 易用性

  2. 速度

  3. 算子数量

  4. 开源模型

第一是易用性。PyTorch自从2018年12月PyTorch 1.0 stable版本正式发布以来,只有半年多的时间,能迅速增长易用性功不可没。PyTorch的易用性一方面是debug简单,可以直接设置断点查看各个tensor的值,另一方面tensor可以和numpy格式互相转换调用,可以使用python的控制流,大大扩充了其灵活性(TensorFlow推出的eager模式有类似目的和效果)。

第二是速度。训练是一个费时费力的过程,用GPU训练一两天是正常,甚至有的大模型大数据量需要十天半个月(例如BERT large),因此训练速度也是大家比较关心的一个指标。PyTorch虽然提供了非常灵活的接口,采用动态图机制,但是也做了非常多的优化,比如异步调用,尽量流水执行等方式,使得其速度和TensorFlow相当,甚至一些场景优于TensorFlow.

第三是算子数量。这一点TensorFlow无疑是最大的赢家,提供的python API达到8000多个(参见https://tensorflow.google.cn/api_docs/python),基本上不存在用户找不到的算子,所有的算法都可以用TensorFlow算子拼出来。不过API过多也是个负担,又是low level又是high level,容易把用户整晕。PyTorch由于起步较晚,数量少有劣势,但质量上有优势。

第四是开源模型。这点其实也非常重要,试想一下,现在你要用BERT,这个是由Google研究发布,基于TensorFlow开源的,那自然只能选TensorFlow上手了。虽然后续有人开源PyTorch的版本,但毕竟时间上要晚一些,而且非官方的,质量不能得到100%的保证,关注度会大打折扣。不过PyTorch这方面也非常重视,之前把何凯明挖过去,构建了自己的图像检测、分割开源库Detectron,对提升PyTorch的使用率起了很大作用。

总得来说,这两种框架是都需要必备的,掌握各自的使用技巧,多看新的模型,才能立于不败之地~

附录:

TensorFlow models:

bert

boosted_trees

mnist

resnet

transformer

wide_deep

adversarial_crypto

adversarial_text

attention_ocr

audioset

autoencoder

brain_coder

cognitive_mapping_and_planning

compression

cvt_text

deep_contextual_bandits

deep_speech

deeplab

delf

differential_privacy

domain_adaptation

fivo

gan

im2txt

inception

keypointnet

learning_to_remember_rare_events

learning_unsupervised_learning

lexnet_nc

lfads

lm_1b

lm_commonsense

maskgan

namignizer

neural_gpu

neural_programmer

next_frame_prediction

object_detection

pcl_rl

ptn

marco

qa_kg

real_nvp

rebar

resnet

seq2species

skip_thoughts

slim

street

struct2depth

swivel

syntaxnet

tcn

textsum

transformer

vid2depth

video_prediction

PyTorch models

AlexNet

VGG

ResNet

SqueezeNet

DenseNet

Inception v3

GoogLeNet

ShuffleNet v2

MobileNet v2

ResNeXt

FCN ResNet101

DeepLabV3 ResNet101

Faster R-CNN ResNet-50 FPN

Mask R-CNN ResNet-50 FPN

Keypoint R-CNN ResNet-50 FPN

关于如何进行TensorFlow与PyTorch对比问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


分享名称:如何进行TensorFlow与PyTorch对比
文章路径:http://pwwzsj.com/article/jgpcjd.html