主流深度学习开源工具汇总

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32782059/article/details/78188530

近几年来,深度学习在机器学习领域取得了快速的发展,它切底改变了我们对人工智能的看法。就是使用神经网络的一系列算法应对多层次的,不同层级的抽象。目前深度学习的主要应用领域(或者说是比较成熟的领域)主要有:计算机视觉(图像识别、光学字符识别)、语音识别、自然语言处理、人机博弈、金融领域的风控及量化交易。

一、Caffe

1、Caffe是一个深度学习框架,简单、快速、模块化

2、它由伯克利AI研究(BAIR)和社区贡献者开发

3、支持的语言:C++、Python、MATLAB

4、支持的OS,Linux、Mac、Windows

5、选择Caffe的理由:

a、简单的架构鼓励应用和创新,通过配置来定义模型和优化,可以通过设置单个标识GPU训练机器和商用集群服务器或移动设备上使用

b、可扩展代码促进了积极的发展。

c、速度使得Caffe成为研究实验和行业部署的完美选择。Caffe在单个的NVIDIA K40 GPU*上每天可以处理超过60M图片。

d、社区,Caffe已经为视觉、语音和多媒体的学术研究项目启动原型甚至大规模的工业应用提供了支持。


二、Deeplearning4j

1、Deeplearning4j是一个为java编写的、开源的、分布式的深度学习库。

2、Skymind是其商用支持部门

3、支持的语言:java、scala、clojure、Kotlin。 Keras支持Python。

4、支持的操作系统有:Linux, Windows, Mac,Android

5、选择Deeplearning4j

a、可以利用最新的分布式计算框架Hadoop和Spark来加速训练,在多GPU环境性能同Caffe一样的好。

b、完全开源

c、同任何JVM语言兼容,同时支持Python和C++

d、适用微服务架构

e、GPU支持AWS扩展


三、Microsoft Cognitive Toolkit(CNTK)

1、CNTK是一个免费的、容易使用的、开源的商用级的工具集,用来训练深度学习算法。

2、由微软研究院提供支持

3、支持的语言:Python, C++, BrainScript

4、支持的OS:Linux, Windows

5、选择CNTK的理由

a、更快的训练和评估深度学习算法,能有效的进行扩展,从CPU到GPU到多台机器,同时保持准确性。

b、可与大叔级可靠的工作,Skype、Cortana、Bing、Xbox和行业领先的科学家已经使用该工具包开发商业级别的应用。

c、提供快速、易于使用的架构。使用C++、Python等语言和网络,可以定义任何内置的算法或者使用自己的训练算法。

d、高度优化,内置的组件

e、高效的资源使用

f、容易扩展你自己的网络

g、能在Azure上使用和训练


四、MXNet

1、一个灵活的、高效的深度学习库

2、由分布式机器学习社区提供支持

3、支持的语言:C++、Python,R、Scala等

4、支持的OS:Linux,Mac,windows, Android, iOS

5、选择的理由:

a、高效

b、分布式计算

c、动态计算图


五、PaddlePaddle

1、是一个快速、高效、灵活、可扩展的深度学习平台

2、由百度提供支持

3、支持的语言:C++、Python

4、支持的OS:Linux,Mac

5、选择的理由:

a、容易使用:为加载数据和指定模型结构提供了灵活的接口

b、灵活:支持CNN、RNN和各种复杂的深度学习模型

c、高效:提供及其优化的操作、内存回收和网络通信

d、扩展:轻松扩展异构计算资源和存储,从而加快培训过程


六、TensorFlow

1、TensorFlow是一个用于机器学习的软件库,用于各种任务,是一个数学库,同时用于构建和训练神经网络系统来检测和破译模式和相关性,类似于人类的学习和推理。

2、由Google提供支持

3、支持的语言:C++、Python

4、支持的OS:Linux,Mac,Android,iOS

5、选择的理由:

a、TensorFlow中包含XLA,这是一个强大的线性代数编译器,可以帮组TensorFlow代码在嵌入式处理器、CPU、GPU、TPU和其他平台上尽可能快速的运行

b、提供高层级的API,让您轻松的构建和训练你的模型

c、支持不同的使用规模,即支持探索性研究,也支持大规模生产用途。


七、Torch

1、Torch是一个机器学习框架,广泛支持机器学习算法,优先使用GPU。

2、由Ronan Collobert、Soumith Chintala等提供支持

3、支持的语言:Lua、LuaJIT、C

4、支持的OS:Linux,Mac,Windows,Android,iOS

5、选择的理由:

a、核心是流行的神经网络和易于使用的优化库

b、为实现复杂神经网络拓扑提供最大的灵活性

c、可以构建任意的神经网络图形,并以高效的方式并行化CPU和GPU


八、不同工具在GitHub上的活跃程度对比。





猜你喜欢

转载自blog.csdn.net/qq_32782059/article/details/78188530