深度学习框架分解

源节点: 1092174

深度学习框架分解

深度学习继续发展成为 AI 工具箱中最强大的技术之一。 目前存在许多支持模型开发的软件包,我们重点介绍了具有关键品质和差异化特征的重要选项,以帮助您选择最适合您需求的选项。


什么是深度学习框架?

深度学习框架是研究人员和数据科学家用来设计和训练深度学习模型的软件包。 这些框架的想法是允许人们在不深入研究深度学习、神经网络和机器学习的算法的情况下训练他们的模型。

这些框架提供了用于通过高级编程接口设计、训练和验证模型的构建块。 广泛使用的深度学习框架如 PyTorch、TensorFlow、MXNet 等也可以使用 GPU 加速库如 cuDNN 和 NCCL 来提供高性能的多 GPU 加速训练。

为什么要使用深度学习框架?

  • 他们提供现成的库来定义层、网络类型(CNN、RNN)和通用模型架构
  • 它们可以支持计算机视觉应用; 图像、语音和自然语言处理
  • 他们通过流行的编程语言(如 Python、C、C++ 和 Scala)拥有熟悉的界面
  • 许多深度学习框架由 NVIDIA 深度学习库加速,例如 cuDNN、NCCl 和 cuBLAS,用于 GPU 加速深度学习训练

示例框架

骨架 气质 独特优势
TensorFlow
  • 易于使用 - 定义明确的 API、文档
  • 灵活 – 非常适合研究和制作新想法原型
  • 在 TensorFlow 之上构建的多种工具,例如 TensorFlow Slim、Scikit Flow、PrettyTensor、Keras 和 TFLearn
  • TensorFlow Lite 允许在移动和嵌入式设备上进行部署
  • JavaScript 库可以通过 Web 浏览器和 Node.js 部署模型
  • 良好的社区参与和支持
  • 大量现有 TensorFlow 示例和代码,加速研究
  • 通过 TensorBoard 进行计算图可视化
  • Python接口
埃萨拉 (继 茶野)
  • 作为符号表达式的自动微分
  • 针对速度、数值稳定性和内存使用情况的计算图优化和动态代码生成
  • 低层次和灵活的新思想研究
  • 基于 Python,与 NumPy 集成
  • 没有多 GPU
咖啡
  • 专为计算机视觉框架问题而设计
  • 研究新算法太死板
  • Caffe 处于维护模式
  • Caffe 的 NVIDIA fork 由 NVIDIA 维护和更新
  • 在最新的 GPU 硬件上提供优化的性能
咖啡2
  • Caffe2 现在是 PyTorch 的一部分,API 正在被弃用
PyTorch
  • PyTorch 基于 Python。 它是基于 Lua 编程语言的 Torch 的继承者
  • 主要受众是研究人员
  • 支持动态计算图
  • PyTorch 1.0 是一个新的迭代,包括与 Caffe2 合并的 PyTorch(当前稳定版本是 1.9.0 从 2021 年 XNUMX 月起)
  • 现在是 Facebook 使用的主要框架/Facebook FAIR 用于研究的主要框架
  • 非常灵活的研究
  • 与其基于的流行 Torch 框架共享相同的后端
链条机
  • 可快速制作原型且更易于调试的模型
  • CuPy:NumPy 等效的多维 CUDA® 阵列库
  • 扩展和工具:ChainerRL、ChainerMN,用于计算机视觉
  • 现在处于维护模式,因为它背后的公司正在将他们的主要框架更改为 PyTorch
  • 使用 Python API 的动态计算图是 Chainer 和 PyTorch 的优势
Apache MXNet
  • 主要重点是训练和部署深度神经网络
  • MATLAB 支持
  • 便携和可扩展,包括多 GPU 和多节点支持
  • 支持 8 种语言绑定,包括 C++、Python、Julia、Java、Clojure、R、Scala 和 Perl
  • 允许混合使用符号和命令式编程
MATLAB
  • 不仅仅是 DL 分类器:将图像/视觉处理与 DL 相结合
  • 自动化分布式训练和部署到数据中心并嵌入,无需手动编码
  • 使研究、原型设计和调试变得容易的高生产力桌面 IDE(集成开发环境)
  • MATLAB专家技术支持
  • 轻松集成到现有的 MATLAB 和 Simulink 工作流程中

有关 TensorFlow 的更多详细信息

TensorFlow 是由 Google 创建的开源软件库,是一种流行的机器学习工具,尤其是用于训练深度神经网络。 TensorFlow 的 API 主要支持 Python 和 C,但也有适用于 C++、JavaScript 和 Java 的 API; 但是,只有 Python API 才能保证稳定。

TensorFlow 的社区还开发了对许多其他语言的支持,包括 C#、Haskell、Julia、R、Ruby、Rust 和 Scala。

TensorFlow 的优势在于它有如此多的入口点。 除了语言之外,还有大量工具与 TensorFlow 集成或构建在 TensorFlow 之上。

TensorFlow 也有一个非常大的用户社区,您可以在其中获得帮助,并且有很好的文档记录。

关于 Keras 的更多细节

Keras 是一个开源库,专注于为神经网络提供简单的 Python API,具有 GPU 集群的可扩展性等功能。 它建立在 TensorFlow 2.0 之上,也可以在 Theano 上运行。

Keras 具有与 TensorFlow 相同的可移植性,这意味着您可以在浏览器以及移动和嵌入式设备中运行它。 Keras 被许多主要组织使用,包括 CERN 和 NASA。

关于 PyTorch 的更多细节

PyTorch 是 FAANG 生态系统的另一个产品,来自 Facebook 的人工智能研究实验室 (FAIR)。 PyTorch 主要专注于计算机视觉和自然语言处理 (NLP) 任务。 与 TensorFlow 一样,PyTorch 的主要界面语言是 Python,但也有 C++ 支持。

PyTorch 的社区有许多与库集成的工具,例如用于 scikit-learn 兼容性的 Skorch、用于 NLP 的 extBrewer、用于对话式 AI 的 NeMo 工具包,以及 PyTorch闪电 它在思想上与 TensorFlow 和 Keras 相似,因为它专注于简化使模型工作所需的编码。

PyTorch 也是带有张量的 NumPy(机器学习和数据科学中的一种流行工具)的良好替代品,张量类似于 NumPy 数组,但经过优化以在 CPU 或 GPU 上运行。 PyTorch 有一种针对移动设备的实验性部署方法,但经过优化,可以在云计算平台上运行,包括 Amazon Web Services、Google Cloud 和 Microsoft Azure。

有多种深度学习框架可供选择。 如果此处列出的选项之一不适合您的需求,还有其他选项,包括 Amazon 的 Gluon(基于 MXNet)、DL4J 和 Sonnet。

原版。 经许可重新发布。

相关新闻:

来源:https://www.kdnuggets.com/2021/09/a-breakdown-deep-learning-frameworks.html

时间戳记:

更多来自 掘金队