2019年十大最佳深度学习框架( 二 )


  • 该框架支持多种语言,如C ++,Python,R,Julia,JavaScript,Scala,Go,甚至Perl 。
  • 可以在多个GPU和许多机器上非常有效地并行计算 。
MXNet优点:
  • 支持多个GPU(具有优化的计算和快速上下文切换)
  • 清晰且易于维护的代码(Python,R,Scala和其他API)
  • 快速解决问题的能力(对于像我这样的深度学习新手至关重要)
虽然它不像TF那么受欢迎,但MXNet具有详细的文档并且易于使用,能够在命令式和符号式编程风格之间进行选择,使其成为初学者和经验丰富的工程师的理想选择 。
GLUON
2019年十大最佳深度学习框架

文章插图
Gluon是一个更好的深度学习框架,可以用来创建复杂的模型 。GLUON基本特性:
  • Gluon的特殊性是具有一个灵活的界面,简化了原型设计,构建和培训深度学习模型,而不会牺牲学习速度 。
  • Gluon基于MXNet,提供简单的API,简化深度学习模型的创建 。
  • 与PyTorch类似,Gluon框架支持使用动态图表,将其与高性能MXNet相结合 。从这个角度来看,Gluon看起来像是分布式计算的Keras非常有趣的替代品 。
GLUON优点:
  • 在Gluon中,您可以使用简单,清晰和简洁的代码定义神经网络 。
  • 它将训练算法和神经网络模型结合在一起,从而在不牺牲性能的情况下提供开发过程的灵活性 。
  • Gluon可以定义动态的神经网络模型,这意味着它们可以动态构建,使用任何结构,并使用Python的任何本机控制流 。
SWIFT
2019年十大最佳深度学习框架

文章插图
当你听到Swift时,您可能会考虑iOS或macOS的应用程序开发 。但是如果你正在学习深度学习,那么你一定听说过Swens for Tensorflow 。通过直接与通用编程语言集成,Swift for TensorFlow可以以前所未有的方式表达更强大的算法 。SWIFT基本特性:
  • 可以轻松获得可微分的自定义数据结构 。
  • 下一代API。通过实践和研究获得的新API更易于使用且更强大 。
  • 在TensorFlow的基础上,Swift API为您提供对所有底层TensorFlow运算符的直接调用 。
  • 基于Jupyter、LLDB或者Swift in Colab的编程工具提高了您的工作效率 。
SWIFT优点:
  • 如果动态语言不适合您的任务,那么这将是一个很好的选择 。当你训练运行了几个小时,然后你的程序遇到类型错误,那么使用Swift,一种静态类型语言 。您将看到代码错误的地方 。
Chainer
2019年十大最佳深度学习框架

文章插图
直到CMU的DyNet和Facebook的PyTorch出现之前,Chainer是动态计算图或网络的领先神经网络框架,它允许输入数据长度不一致 。chainer基本特性:
  • Chainer代码是在Numpy和CuPy库的基础之上用纯Python编写的,Chainer是第一个使用动态架构模型的框架 。
Chainer优点:
  • 通过自己的基准测试,Chainer明显比其他面向Python的框架更快,TensorFlow是包含MxNet和CNTK的测试组中最慢的 。
  • 比TensorFlow更好的GPU和GPU数据中心性能 。最近Chainer成为GPU数据中心性能的全球冠军 。
DL4J
2019年十大最佳深度学习框架

文章插图
那些使用Java或Scala的人应该注意DL4J(Deep Learning for Java的简称) 。DL4J的基本特性:
  • DL4J中的神经网络训练通过簇的迭代并行计算 。
  • 该过程由Hadoop和Spark架构支持 。
  • 使用Java允许您在Android设备的程序开发周期中使用 。
DL4J优点:
  • 如果您正在寻找一个良好的Java深度学习框架,这会是一个非常好的平台 。
ONNX
2019年十大最佳深度学习框架

文章插图
ONNX项目诞生于微软和Facebook,旨在寻找深度学习模型呈现的开放格式 。ONNX简化了在人工智能的不同工作方式之间传递模型的过程 。因此ONNX具有各种深度学习框架的优点 。ONNX基本特性:
  • ONNX使模型能够在一个框架中进行训练并转移到另一个框架中进行推理 。ONNX模型目前在Caffe2,Microsoft Cognitive Toolkit,MXNet和PyTorch中得到支持,并且还有许多其他常见框架和库的连接器 。
ONNX优点:
  • 对于PyTorch开发人员来说,ONNX是一个好的选择 。但是对于那些喜欢TensorFlow的人来说,Keras等可能好一点 。
总结
那么您应该使用哪种深度学习框架?下面是几点建议: