随着越来越多的企业希望扩大其运营规模,它们已成为接受机器学习和预测分析的必要条件。人工智能与正确的深度学习框架相结合,真正放大了企业在其领域内可以实现和获得的整体规模。
机器学习范式不断发展。关键是转向开发在移动设备上运行的机器学习模型,以使应用程序更智能,更智能。深度学习是解决复杂问题的关键所在。
鉴于深度学习是执行更高级别复杂任务的关键,成功构建和部署它们证明是全球数据科学家和数据工程师面临的巨大挑战。今天,我们拥有无数的框架,使我们能够开发出可以提供更好抽象级别的工具,同时简化困难的编程挑战。
每个框架都以不同的方式构建,以用于不同的目的。在这里,我们将介绍八大深度学习框架,以便您更好地了解哪个框架最适合您,或者在解决您的业务挑战时更方便。
TensorFlow可以说是最好的深度学习框架之一,并且已经被Airbus,Twitter,IBM和其他几个巨头采用,这主要归功于其高度灵活的系统架构。
最着名的TensorFlow用例必须是谷歌翻译,加上自然语言处理,文本分类/摘要,语音/图像/手写识别,预测和标记等功能。
TensorFlow可在桌面和移动设备上使用,还支持Python,C ++和R等语言,以创建深度学习模型和包装库。
TensorFlow附带两个广泛使用的工具:
如果您迈出深度学习的第一步,那么TensorFlow是个明智的选择,因为它是基于Python的,受Google支持,并且附带了文档和演练来指导您。
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中那样的细粒度网络层。鉴于体系结构,对循环网络的总体支持以及语言建模,它非常差,并且建立复杂的层类型必须以低级语言完成。
Microsoft Cognitive Toolkit(以前称为CNTK)通常以易于培训和跨服务器的流行模型类型而闻名,是一个开源深度学习框架,用于培训深度学习模型。它执行有效的卷积神经网络和图像,语音和基于文本的数据培训。与Caffe类似,它受Python,C ++和命令行界面等接口的支持。
鉴于其资源的连贯使用,可以使用工具包轻松实现强化学习模型或生成对抗网络(GAN)。众所周知,与在Theano或TensorFlow等工具包上运行时,在多台机器上运行时,可提供更高的性能和可扩展性。
与Caffe相比,在发明新的复杂层类型时,由于构建块的精细粒度,用户不需要以低级语言实现它们。Microsoft Cognitive Toolkit支持RNN和CNN类型的神经模型,因此能够处理图像,手写和语音识别问题。目前,由于缺乏对ARM体系结构的支持,其在移动设备上的功能相当有限。
Torch是一种科学计算框架,可为机器学习算法提供广泛支持。它是一个基于Lua的深度学习框架,广泛应用于Facebook,Twitter和Google等行业巨头。它采用CUDA和C / C ++库进行处理,基本上是为了扩展建筑模型的生产并提供整体灵活性。
最近,PyTorch已经在深度学习框架社区中获得了很高的采用率,并被认为是TensorFlow的竞争对手。PyTorch基本上是Torch深度学习框架的一个端口,用于构建深度神经网络和执行高度复杂的张量计算。
与Torch相反,PyTorch在Python上运行,这意味着任何对Python有基本了解的人都可以开始构建自己的深度学习模型。
鉴于PyTorch框架的架构风格,与Torch相比,整个深度建模过程更简单,更透明。
MXNet(发音为mix-net)专为高效率,高生产率和灵活性而设计,是Python,R,C ++和Julia支持的深度学习框架。
MXNet的优点在于它使用户能够使用各种编程语言进行编码。这意味着您可以使用您喜欢的任何语言训练您的深度学习模型,而无需从头学习新东西。使用C ++和CUDA编写的后端,MXNet能够扩展和使用无数的GPU,这使得它对企业来说是不可或缺的。例证:亚马逊使用MXNet作为深度学习的参考库。
MXNet支持长期短期记忆(LTSM)网络以及RNN和CNN。
这种深度学习框架以其在成像,手写/语音识别,预测和NLP方面的能力而闻名。
Chainer是由运行策略设计神经网络基于Python的深度学习的框架,它是十分强大的,动态的,直观的。与使用相同策略的其他框架相比,您可以在运行时修改网络,从而允许您执行任意控制流语句。
Chainer支持CUDA计算和多GPU。该深度学习框架主要用于使用RNN和CNN的情感分析,机器翻译,语音识别等。
Keras神经网络库(具有Python的支持接口)以简约而着称,支持能够在TensorFlow或Theano上运行的卷积网络和循环网络。该库是用Python编写的,并且作为其USP开发了快速实验。
由于TensorFlow接口有点具有挑战性,而且它是一个低级库,可能对新用户来说很复杂,因此Keras的构建旨在通过构建有效的快速原型设计提供简单的界面。可以使用TensorFlow的神经网络。
通过堆叠多个层来构建深度学习模型时,轻量级,易于使用且非常简单:简而言之就是Keras。这就是为什么Keras成为TensorFlow核心API的一部分的原因。
Keras的主要用途是分类,文本生成和摘要,标记和翻译,以及语音识别等。如果您恰好是具有一定Python经验并希望深入学习的开发人员,那么Keras应该是您应该查看的内容。
通过迭代减少,微服务架构适配以及分布式CPU和GPU的并行训练是Deeplearning4j深度学习框架的一些显着特征 。它是用Java和Scala开发的,也支持其他JVM语言。
作为一个以商业为重点的商业分布式深度学习平台,这一深度学习框架的最大优势在于,您可以将整个Java生态系统整合在一起,以执行深度学习。它还可以在Hadoop和Spark之上进行管理,以协调多个主机线程。DL4J使用MapReduce训练网络,同时依赖于其他库来执行大型矩阵操作。
Deeplearning4j通过RBM,DBN,卷积神经网络(CNN),递归神经网络(RNN),递归神经张量网络(RNTN)和长期短期记忆(LTSM)提供深度网络支持。
由于这个深度学习框架是用Java实现的,因此与Python相比效率更高。当涉及使用多个GPU的图像识别任务时,它与Caffe一样快。该框架显示出无与伦比的图像识别,欺诈检测,文本挖掘,词性标注和自然语言处理的潜力。
使用Java作为您的核心编程语言,如果您正在寻找一种将深度学习模型部署到生产的强大而有效的方法,那么您当然应该选择这种深度学习框架。
很明显,深度学习的出现引发了许多机器学习和人工智能的实际使用案例。通过深度学习,以最简单的方式分解任务,以便以最有效的方式协助机器。
上面列表中哪个深度学习框架最适合您的业务需求?答案就在于许多因素,但是,如果您只是想要开始,那么像TensorFlow或Chainer这样的基于Python的深度学习框架是理想的。
如果您正在寻找更多内容,那么在为您的业务需求选择深度学习框架之前,应始终考虑速度,资源需求和使用情况以及经过培训的模型的一致性。
原文标题《Top 8 Deep Learning Frameworks》
译者:February
不代表云加社区观点,更多详情请查看原文链接
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。