对比Tensorflow与PyTorch的异同

一、PyTorch简介

PyTorch 是由 Torch7 团队开源的,这也是Facebook 的 AI 研究团队发布了一个 Python 工具包,据该项目官网介绍,是一个 Python 优先的深度学习框架,能够在强大的 GPU 加速基础上实现张量和动态神经网络。

目前除了 Facebook 之外,也有大量的机构正在使用 PyTorch

PyTorch 的前身是 Torch,其是一个十分老牌、对多维矩阵数据进行操作的张量(tensor )库,在机器学习和其他数学密集型应用有广泛应用,但由于其语言采用 Lua,导致在国内一直很小众,如今使用 Python 语言强势归来,快速的赢得了大量使用者。

  1. PyTorch 提供了两种高层面的功能:
    使用强大的 GPU 加速的 Tensor 计算(类似 numpy)
    构建于基于 autograd 系统的深度神经网络
    所以使用 PyTorch 的原因通常有两个:

  2. 作为 numpy 的替代,以便使用强大的 GPU 加速;
    将其作为一个能提供最大灵活性和速度的深度学习研究平台
    PyTorch 作为一个 Python 优先的动态图框架,有下面几个特点

  3. Python 优先
    PyTorch 不是简单地在整体 C++ 框架上绑定 Python,他深入构建在 Python 之上,你可以像使用 numpy/scipy/scikit-learn 那样轻松地使用 PyTorch,也可以用你喜欢的库和包在 PyTorch 中编写新的神经网络层,尽量让你不用重新发明轮子。

  4. 命令式体验
    PyTorch 的设计思路是线性、直观且易于使用。当你需要执行一行代码时,它会忠实执行。PyTorch 没有异步的世界观。当你打开调试器,或接收到错误代码和 stack trace 时,你会发现理解这些信息是非常轻松的。Stack-trace 点将会直接指向代码定义的确切位置。我们不希望你在 debug 时会因为错误的指向或异步和不透明的引擎而浪费时间。

  5. 快速精益
    PyTorch 具有轻巧的框架,集成了各种加速库,如 Intel MKL、英伟达的 CuDNN 和 NCCL 来优化速度。在其核心,它的 CPU 和 GPU Tensor 与神经网络后端(TH、THC、THNN、THCUNN)被编写成了独立的库,带有 C99 API。

(摘自:廖星宇《深度学习入门之pytorch》)

二、Tensorflow

TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。

  1. Tensorflow 的特征
    在这里插入图片描述
    (以上摘自Tensorflow中文社区)

三、横向对比

1.相同点

  1. 开源
  2. 都有个强大的爹(Google/Facebook)
  3. 支持者众多,社区活跃
  4. 均支持python(显然,pytorch是python first)

2.不同点

  1. Tensorflow更倾向于工业应用,使用静态图计算,具有强大的移植性
  2. Pytorch作为后起之秀,受到了众多研究型学者的宠爱,语法简便,利用动态图计算,开发周期通常会比Tensorflow短一些。
发布了44 篇原创文章 · 获赞 12 · 访问量 9086

猜你喜欢

转载自blog.csdn.net/ftimes/article/details/105016954