TensorFlow or PyTorch
既然你已经读到了这篇文章,我就断定你已经开始了你的深度学习之旅了,并且对人造神经网络的研究已经有一段时间了;或者也许你正打算开始你的学习之旅。无论是哪一种情况,你都是因为发现你陷入了困惑中,才找到了这篇文章。你可能查询浏览了各种各样的深度学习的框架和库,但是其中有两个比较突出,他们是两个最流行的深度学习库:TensorFlow 和 PyTorch。你没有办法指出这两个库有什么本质的不同,不用担心!我将在这网络上无休止的存储空间中添加一篇新的文章,也许可以帮你弄清楚一些问题。我将简要的快速的给出你五点内容。仅仅是五点,那么,让我们开始吧!
第一点:尽管 TensorFlow 和 PyTorch 都是开源的,但是他们是由两个不同的公司创建的。TensorFlow 是由 Google 基于 Theano 开发的,而 PyTorch 是由 Facebook 基于 Torch 开发的。
第二点:这两个框架最大的不同是他们定义计算图的方式不同。TensorFlow 定义一个静态图,而 PyTorch 定义动态图,这是什么意思呢?意思就是在 TensorFlow 中,你必须首先定义整个计算图,然后运行你的机器学习模型。但是在 PyTorch 中,你可以在运行的过程中,定义或控制你的图,当在神经网络中使用变长的输入时,这是非常有用的。
第三点:TensorFlow 比 PyTorch 有更加陡峭的学习曲线。PyTorch 更具有 Python 风格,且在构建机器学习模型时更加直观。另一方面,为了学习 TensorFlow,你必须先学习一些他的工作机制(例如 sessions、placeholders 等),因此学习 TensorFlow 比学习 PyTorch 更难一点。
第四点:相比 PyTorch 来说,TensorFlow 背后有更大的社区,这意味着找到资源去学习 TensorFlow,或者是寻找问题的解决办法都会更容易一些。许多的教程和 MOOC(公开课)上面也都使用的是 TensorFlow 而不是 PyTorch,这是因为相比 TensorFlow 来说,PyTorch 是很新的东西。因此在资源方面,相比 PyTorch 来说,你会找到更多的 TensorFlow 的内容。
第五点:如果不讨论 TensorBoard,这个对比就是不完整的。TensorBoard 是一个出色的工具,你可以用它在浏览器中直接可视化你的机器学习模型。PyTorch 没有这个工具,尽管你可以使用类似于 Matplotlib 这样的工具。尽管你可以使用一些方法集成一些东西来让你在使用 PyTorch 时可以使用 TensorBoard,但是它本事是不原生支持的。
最后,TensorFlow 在生产模型和伸缩性上更好,它就是为了生产环境准备的。鉴于 PyTorch 是更容易学习,使用起来也更轻松,因此对于激情项目和快速原型制作来说,它相对更好。
好吧,够了!告诉我哪一个更好?
没有正确答案。(我知道,别人这么说的话我也很讨厌)
真实情况就是一些人发现使用 PyTorch 更好,而另外一些人发现使用 TensorFlow 更好。它们都是很好的框架,有很好的社区和支持,它们都可以完成工作,它们都是神器的魔杖,都可以做一些机器学习的魔术。
我希望我可以帮助你更清楚一些你的困惑(一点点,也许吧)。如果你是真的很困惑并且都没有使用过,那就随便选择一个开始学习,随着你的学习,你会有更多的直觉去帮你做决定。
最后想说的是,他们都是工具,你可以选择任何一个,开始学习机器学习科学和艺术!
翻译自 Tensorflow or PyTorch : The force is strong with which one?— Yashwardhan Jain,在保证原意不变情况下,略有润色和修改。
TensorFlow or PyTorch的更多相关文章
- 分别基于TensorFlow、PyTorch、Keras的深度学习动手练习项目
×下面资源个人全都跑了一遍,不会出现仅是字符而无法运行的状况,运行环境: Geoffrey Hinton在多次访谈中讲到深度学习研究人员不要仅仅只停留在理论上,要多编程.个人在学习中也体会到单单的看理 ...
- Tensorflow、Pytorch、Keras的多GPU使用
Tensorflow.Pytorch.Keras的多GPU的并行操作 方法一 :使用深度学习工具提供的 API指定 1.1 Tesorflow tensroflow指定GPU的多卡并行的时候,也是可以 ...
- Tensorflow视频教程&Pytorch视频教程
基于tensorflow做研究和基于pytorch做研究哪个好?哪个更容易复制代码,工业上更易用.Keras和tensorflow.pytorch的关系. Keras:Keras是一个由Python编 ...
- Ubuntu16.04深度学习基本环境搭建,tensorflow , keras , pytorch , cuda
Ubuntu16.04深度学习基本环境搭建,tensorflow , keras , pytorch , cuda Ubuntu16.04安装 参考https://blog.csdn.net/flyy ...
- 常用深度学习框——Caffe/ TensorFlow / Keras/ PyTorch/MXNet
常用深度学习框--Caffe/ TensorFlow / Keras/ PyTorch/MXNet 一.概述 近几年来,深度学习的研究和应用的热潮持续高涨,各种开源深度学习框架层出不穷,包括Tenso ...
- 深度学习调用TensorFlow、PyTorch等框架
深度学习调用TensorFlow.PyTorch等框架 一.开发目标目标 提供统一接口的库,它可以从C++和Python中的多个框架中运行深度学习模型.欧米诺使研究人员能够在自己选择的框架内轻松建立模 ...
- TensorFlow?PyTorch?Paddle?AI工具库生态之争:ONNX将一统天下
作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 本文地址:https://www.showmeai.tech/artic ...
- Ubuntu18.04: GPU Driver 390.116 + CUDA9.0 + cuDNN7 + tensorflow 和pytorch环境搭建
1.close nouveau 终端输入:sudo gedit /etc/modprobe.d/blacklist.conf 末尾加两行 blacklist nouveau options nouve ...
- [转] 理解CheckPoint及其在Tensorflow & Keras & Pytorch中的使用
作者用游戏的暂停与继续聊明白了checkpoint的作用,在三种主流框架中演示实际使用场景,手动点赞. 转自:https://blog.floydhub.com/checkpointing-tutor ...
随机推荐
- post提交方式为什么要序列化,而Get提交方式就不用?序列化做了什么?
这是因为后台能够直接处理的数据格式,是一种经过序列化的键值对数据,比如前端要向后台提交三个参数,分别是a=1,b=2,c=3,那么后台接收到的数据就应该是a=1&b=2&c=3(可以看 ...
- H3C tracert命令的输出
- C# 循环的判断会进来几次
最近有小伙伴告诉我,在循环的判断条件只会计算一次,本金鱼不相信,于是就做了测试,本文记录我做的测试. 先来写一个简单的代码, 就一个循环,循环的判断是从一个函数获取值 class Program { ...
- CodeChef Ada Pawns
最小割 留下最多的点 形如左上或者右上没有点的点一定会留下 对于斜着的关系的两个点不能共存 黑白行染色! 白行的点称为 白点,黑点类似 反着连关系 对于一定会留下的,S到白点,黑点到T,都连inf 不 ...
- es6笔记 day2---解构赋值
解构赋值 这个知识点非常有用,特别是在做数据交互的时候(Ajax).那么它是怎么使用的呢? 它就是这么使用的↓ let [a,b,c] = [12,5,6]; 这就是解构赋值 注意:左右两边,结构格 ...
- js 的this指向问题
this指向的,永远只可能是对象! this指向谁,永远不取决于this写在哪!而是取决于函数在哪调用. this指向的对象,我们称之为函数的上下文context,也叫函数的调用者. 1:通过函数名直 ...
- js实现防抖,节流
防抖函数. 将几次操作合并为一次操作进行.设置一个计时器,规定在延迟时间后触发函数,但是在延迟时间内如果再次触发,就会取消之前的计时器.如此,只有最后一次操作能触发.代码如下: function de ...
- dotnet 通过 WMI 获取系统启动的服务
本文告诉大家如何通过 WMI 获取系统启动的服务 通过 Win32_Service 可以获取系统启动的服务 获取的时候只需要拿Caption和State就可以 var mc = "Win32 ...
- 【20.51%】【codeforces 610D】Vika and Segments
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- docker运行容器后agetty进程cpu占用率100%
1.最近在使用docker容器的时候,发现宿主机的agetty进程cpu占用率达到100% 在Google上搜了下,引起这个问题的原因是在使用"docker run"运行容器时使用 ...