TensorFlow与PyTorch:谁才是世界上最好用的开发框架?
发布日期:2024-04-23 来源:51 浏览次数: 作者:nic


TensorFlow与PyTorch:谁才是世界上最好用的开发框架?
TensorFlow与PyTorch这两个开发框架,TensorFlow一直是最受欢迎的开源机器学习框架,稳居龙头宝座;但是新秀PyTorch后来居上,似有超车之意。二者互相博弈,国内也是吵的不可开交,那么TensorFlow与PyTorch:谁才是世界上最好用的开发框架?
Gradient最近发布了一个博客,该博客显着展示了PyTorch在学术界的崛起和被采用情况(根据(CVPR,ICRL,ICML,NIPS,ACL,ICCV等)上发布的论文数量而定。数据显示,2018年PyTorch显然是少数派,到2019年相比,它在学术研究上受到了研究人员的一致欢迎。
因此,开发者/程序员爱问的问题也从“我应该选哪种深度学习框架?”到“ PyTorch 和 TensorFlow,我应该选哪个?”让我们从实际角度看一下每个框架以及其当前功能、为何它们占有很大市场份额。
TensorFlow与PyTorch:发展历史
这两个库都是开源的,并且包含适用于商业项目的许可。
TensorFlow由Google Brain团队于2015年首次开发,目前已被Google用于学术研究和生产目的。
另一方面,PyTorch最初是由Facebook根据流行的Torch框架开发的,最初是NumPy的高级替代品。但是,在2018年初,Caffe2(用于快速特征嵌入的卷积架构)合并到PyTorch中,有效地将PyTorch的重点转移到了数据分析和深度学习之间。PyTorch是最新的深度学习框架之一,由于其简单易用而受到欢迎。Pytorch因其动态计算图和有效的内存使用而非常受欢迎。动态图非常适合某些用例,例如处理文本。Pytorch易于学习且易于编码。
TensorFlow与PyTorch:逐渐流行
TensorFlow得到了广泛的使用,在社区/论坛方面提供了强大的支持。TensorFlow团队还发布了TensorFlow Lite,该版本可以在移动设备上运行。
为了加快使用TensorFlow的处理速度,需要使用诸如Tensor Processing Unit(TPU)之类的硬件设备,以及可在Google Cloud Platform上访问的Edge TPU,Edge TPU是大多数运行TensorFlow Lite的Android设备上的ASIC芯片。
TensorFlow是Google开源的机器学习库,目前是最受欢迎的AI库。它通过其分布式培训支持,可扩展的生产部署选项以及对各种设备(如Android)的支持而受到欢迎。TensorFlow中最棒的功能之一就是Tensorboard可视化。通常在训练期间,必须多次运行才能调整超参数或识别任何潜在的数据问题。使用Tensorboard使查看和发现问题变得非常容易。
对TensorFlow提出挑战的PyTorch,大多数Python开发人员都会对它感到熟悉。
PyTorch是python原生的,并且易于与其他python软件包集成,这一事实使研究人员可以轻松地选择它。许多研究人员之所以使用Pytorch,是因为API直观且易于学习,并且可以快速进行实验,而无需阅读文档。
它可以替代NumPy,后者是行业标准的通用阵列处理程序包。由于PyTorch与NumPy具有非常相似的界面,因此Python开发人员可以轻松地迁移到它。
TensorFlow与PyTorch:技术差异
1)动态计算图
PyTorch真正亮点的地方在于它使用动态而不是静态(TensorFlow使用)计算图。深度学习框架使用计算图来定义需要在任何人工神经网络中执行的计算顺序。
必须先编译静态图,然后才能使用模型进行测试。这是令人难以置信的乏味,并且不适合于快速原型制作。例如使用TensorFlow,必须先定义整个计算图,然后才能运行模型。
但是使用PyTorch,可以动态定义和操作图形。这大大提高了开发人员的生产率,并且在递归神经网络(RNN)中使用可变长度输入时很有用。幸运的是,TensorFlow在2018年发布的TensorFlow Fold库中增加了对动态计算图的支持。
2)保存和加载模型
这两个库都很好地保存和加载了模型。PyTorch有一个简单的API,可以节省模型的所有权重,以便于复制。
TensorFlow还可以很好地处理保存/加载。整个模型可以保存为协议缓冲区,包括参数和操作。此功能还支持以一种语言保存模型,然后以另一种语言(例如C ++或Java)加载模型,这对于不能选择Python的部署堆栈至关重要。
3)部署方式
AI / ML模型的传统接口是REST API。对于大多数Python模型,将创建一个简单的Flask服务器以提供方便的访问。
这两个库都可以使用Flask服务器轻松包装。对于移动和嵌入式部署,TensorFlow是迄今为止最好的方法。借助TensorFlow Lite等工具,可以非常轻松地将其集成到Android甚至iOS框架中。
TensorFlow Serving是另一个伟大的功能。模型会随着时间的流逝而过时,需要使用新数据进行重新训练。TensorFlow Serving允许将旧模型替换为新模型,而无需关闭整个服务。
那么TensorFlow与PyTorch的最新进展是什么?
TensorFlow 2.1.0…“降临”Windows吗?
在最新版的TensorFlow中,tensorflow pip软件包现在默认包括针对Linux和Windows的GPU支持(与tensorflow-gpu相同)。它可以在带有和不带有NVIDIA GPU的机器上运行。tensorflow-gpu仍然可用,对于关心软件包大小的用户,可以在tensorflow-cpu上下载仅CPU的软件包。
为了利用新的/ d2 Reduced Optimize Huge Functions编译器标志,现在使用Visual Studio 2019 16.4版构建了正式发布的tensorflow Pip程序包。TensorFlow是否在Windows上流行还是有待观察的。
专为在边缘运行TensorFlow Lite 而设计的AI芯片
Edge TPU是专为在边缘运行TensorFlow Lite ML模型而设计的ASIC芯片。Edge TPU 可用于越来越多的工业使用场景,如预测性维护、异常检测、机器视觉、机器人学、语音识别等等。 它可以应用于制造、本地部署、医疗保健、零售、智能空间、交通运输等各个领域。它体型小、能耗低,但性能出色,可以在边缘部署高精度 AI。
首个基于谷歌Edge TPU芯片的全球AI模型平台-——Model Play
Model Play 是一款面向全球用户的AI模型资源交流与交易平台,为机器学习与深度学习提供丰富多样化的功能模型,支持钛灵(TiOrb)AIX等多类主流智能终端硬件,帮助用户快速创建和部署模型,显著提高模型开发和应用效率,降低人工智能开发及应用门槛。
Model Play平台中的AI模型,兼容多类市场主流的边缘计算AI芯片,包括Google Coral Edge TPU,英特尔Movidius,英伟达Jetson Nano。尤其是Googl Coral Edge TPU,AI模型下载后更能搭载TiOrb AIX直接进行运行。
Google Edge TPU全球经销商伙伴Gravitylink推出的钛灵AI市场,也已经上线。钛灵AI市场是由Google AI技术推广伙伴 Gravitylink(引力互联)打造的全球化AI算法及解决方案交易市场,致力于帮助来自全球的优秀AI服务商与需求方建立更加高效的直连对接,加速 AI 技术在各领域的落地、应用。