分享

八大深度学习框架,你选哪一个?

 极客之芯 2019-01-31

随着越来越多的企业希望扩大业务规模,它们已经成为他们吸收机器学习和预测分析的不可或缺的组成部分。AI与正确的深度学习框架相结合,真正扩大了企业在其领域内实现和获得的总体规模。

机器学习范式不断发展。关键是要转向开发在移动设备上运行的机器学习模型,以便使应用程序变得更智能和更智能化。深度学习使解决复杂问题变得可能。

鉴于深度学习是执行更高级复杂任务的关键,成功构建和部署它们被证明是全球数据科学家和数据工程师面临的艰巨挑战。今天,我们掌握了大量的框架,使我们能够开发工具,提供更好的抽象级别,同时简化困难的编程挑战。

为了不同的目的,每个框架都以不同的方式构建。在这里,我们看一下排名前八的深度学习框架,以便您更好地了解哪个框架将完美融入或适用于解决业务挑战。

1. TensorFlow

八大深度学习框架,你选哪一个?

TensorFlow可以说是最好的深度学习框架之一,并且已经被Airbus,Twitter,IBM等几家巨头所采用,主要原因在于其高度灵活的系统架构。

TensorFlow最著名的使用案例是Google Translate,加上自然语言处理,文本分类/汇总,语音/图像/手写识别,预测和标记等功能。

TensorFlow可在桌面和移动设备上使用,并且还支持诸如Python,C ++和R等语言,以创建深度学习模型以及封装库。

TensorFlow附带两个广泛使用的工具:

  1. TensorBoard用于网络建模和性能的有效数据可视化。
  2. TensorFlow服务于快速部署新算法/实验,同时保留相同的服务器体系结构和API。它还提供了与其他TensorFlow模型的集成,这与传统实践不同,并且可以扩展为服务于其他模型和数据类型。

如果您正在迈向深入学习的第一步,那么选择TensorFlow是一件简单的事情,因为它基于Python,得到了Google的支持,并且加载了文档和演练来指导您。

2.Caffe

八大深度学习框架,你选哪一个?

Caffe是一个深度学习框架,支持C,C ++,Python和MATLAB等界面以及命令行界面。它以其速度和可移植性及其在卷积神经网络(CNN)建模中的适用性而闻名。使用Caffe的C ++库(带有Python接口)的最大好处是可以从深度网络库Caffe Model Zoo访问可用网络,这些网络是经过预先训练并可立即使用的。当涉及到建模CNN或解决图像处理问题时,这应该成为您的首选库。

Caffe最大的USP是速度。它可以使用单个Nvidia K40 GPU每天处理6000多万张图像。这是1毫秒/图像的推理和4毫秒/图像的学习 - 而最近的库版本更快。

Caffe是一个流行的视觉识别深度学习网络。但是,Caffe不支持像TensorFlow或CNTK中那样的精细网络层。鉴于架构,对经常性网络的整体支持以及语言建模相当糟糕,并且建立复杂的图层类型必须以低级语言完成。

3. Microsoft Cognitive Toolkit/CNTK

八大深度学习框架,你选哪一个?

Microsoft Cognitive Toolkit(以前称为CNTK)是一种开源的深度学习框架,用于培养深度学习模型,这一模式以简单的训练和流行的模型类型跨服务器而广为人知。它执行高效的卷积神经网络和训练图像,语音和基于文本的数据。与Caffe类似,它由诸如Python,C ++和命令行界面等接口支持。

考虑到资源的一致性使用,可以使用工具包轻松完成强化学习模型或生成对抗网络(GAN)的实施。与在多台机器上运行时的Theano或TensorFlow等工具包相比,它提供更高的性能和可扩展性。

与Caffe相比,当涉及到发明新的复杂图层类型时,由于构建块的细粒度,用户无需使用低级语言来实现它们。Microsoft Cognitive Toolkit支持RNN和CNN类型的神经模型,因此能够处理图像,手写和语音识别问题。目前,由于ARM架构缺乏支持,其在移动设备上的功能相当有限。

4. Torch/PyTorch

八大深度学习框架,你选哪一个?

Torch是一个科学计算框架,为机器学习算法提供广泛的支持。这是一个基于Lua的深度学习框架,广泛应用于Facebook,Twitter和Google等行业巨头之中。它采用CUDA和C / C ++库进行处理,基本上可以扩展生成模型的生产规模并提供全面的灵活性。

最近,PyTorch在深度学习框架社区中获得了高度的认可,并被认为是TensorFlow的竞争对手。PyTorch基本上是Torch深度学习框架的一个端口,用于构建深度神经网络和执行高复杂度的张量计算。

与Torch相反,PyTorch运行在Python上,这意味着任何对Python有基本了解的人都可以开始构建自己的深度学习模型。

鉴于PyTorch框架的架构风格,与Torch相比,整个深层建模过程要简单得多且透明。

5. MXNet

八大深度学习框架,你选哪一个?

专为高效率,高生产力和灵活性而设计的MXNet(发音为mix-net)是Python,R,C ++和Julia支持的深度学习框架。

MXNet的美妙之处在于它使用户能够使用各种编程语言进行编码。这意味着您可以使用您喜欢的任何语言来训练您的深度学习模型,而无需从头学习新的东西。通过使用C++和CUDA编写的后端,MXNet可以扩展并使用大量的GPU,这对企业来说是不可或缺的。案例:亚马逊采用MXNet作为深度学习的参考资料库。

MXNet支持长短期记忆(LTSM)网络以及RNN和CNN。

这种深度学习框架以其在成像,手写/语音识别,预测和NLP方面的功能而闻名。

6. Chainer

八大深度学习框架,你选哪一个?

Chainer是一个基于Python的神经网络深度学习框架,由运行策略设计,非常强大,动态和直观 。与使用相同策略的其他框架相比,您可以在运行时修改网络,从而允许您执行任意控制流程语句。

Chainer支持CUDA计算和多GPU。这种深度学习框架主要用于使用RNN和CNN进行情感分析,机器翻译,语音识别等。

7. Keras

八大深度学习框架,你选哪一个?

以极简主义著称,Keras神经网络库(带有Python支持接口)支持能够在TensorFlow或Theano上运行的卷积网络和循环网络。该库是用Python编写的,并且作为其USP进行快速实验开发。

由于事实上TensorFlow界面有点挑战性,并且这是一个低层次的库,可能对新用户来说错综复杂,Keras的构建是为了通过构建有效的快速原型来提供一个简单的界面可以与TensorFlow协同工作的神经网络。

轻量级,易于使用,并且通过堆叠多个层来构建深度学习模型非常简单——这就是Keras。这就是Keras成为TensorFlow核心API一部分的原因。

Keras的主要用途是分类,文本生成和汇总,标记和翻译,以及语音识别等。如果你碰巧是一名有Python经验的开发人员,并希望深入学习,Keras你应该看看。

8. Deeplearning4j

八大深度学习框架,你选哪一个?

通过减少迭代,适应微服务架构以及分布式CPU和GPU的并行培训是Deeplearning4j深度学习框架的一些显着特性 。它以Java和Scala开发,并支持其他JVM语言。

作为一个商业化的,以行业为中心的分布式深度学习平台,该深度学习框架的最大优势在于,您可以将整个Java生态系统汇集在一起以执行深度学习。它也可以在Hadoop和Spark之上进行管理,以编排多个主机线程。DL4J使用MapReduce来训练网络,同时依赖其他库来执行大型矩阵操作。

Deeplearning4j通过RBM,DBN,卷积神经网络(CNN),递归神经网络(RNN),递归神经张量网络(RNTN)和长短期记忆(LTSM)提供深度网络支持。

由于这个深度学习框架是用Java实现的,与Python相比,它更高效。当涉及到使用多个GPU的图像识别任务时,它与Caffe一样快。该框架为图像识别,欺诈检测,文本挖掘,词类标注和自然语言处理展示了无与伦比的潜力。

如果您使用Java作为您的核心编程语言,并且您正在寻找将深度学习模型部署到生产环境的强大而有效的方法,您当然应该选择这个深度学习框架。

结论

很明显,深度学习的出现已经引发了许多机器学习和人工智能的实际使用案例。通过深入的学习,使最简单的任务以最有效的方式分解任务成为可能。

上面列出的哪个深度学习框架最适合您的业务需求?但是,如果您刚刚起步,那么基于Python的深度学习框架(如TensorFlow或Chainer)是理想的选择。

如果您正在寻找更多的东西,那么在为您的业务需求选择一个深度学习框架之前,应始终考虑速度、资源需求和使用情况以及经过训练的模型的一致性。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多