MXNet
- 链接:http://mxnet.io/
- MXNet(发音为mix-net)起源于卡内基梅隆大学和华盛顿大学的实验室。MXNet是一个全功能、可编程和可扩展的深度学习框架,支持最先进的深度学习模型。MXNet支持混合编程模型(命令式和声明式编程)和多种编程语言的代码(包括Python、C++、R、Scala、**、Matlab和JavaScript)。2017年1月30日,MXNet被列入ApacheIncubator开源项目。
- MXNet支持深度学习架构,如卷积神经网络(CNN)、循环神经网络(RNN)和其包含的长短时间**网络(LTSM)。该框架为图像、手写文字和语音的识别和预测以及自然语言处理提供了出色的工具。有些人称MXNet是世界上最好的图像分类器。
- MXNet具有可扩展的强大技术能力,如GPU并行和内存镜像、快速编程器开发和可移植性。此外,MXNet与ApacheHadoopYARN(一种通用分布式应用程序管理框架)集成,使MXNet成为TensorFlow有力的竞争对手。
- MXNet不仅仅只是深度网络框架,它的区别在于支持生成对抗网络(GAN)模型。该模型启发自实验经济学方法的纳什均衡。
Torch
- 链接:http://torch.ch/
- Torch由Facebook的RonanCollobert和SoumithChintala,Twitter的ClementFarabet(现任职于英伟达),以及GoogleDeepMind的KorayKavukcuoglu共同开发。很多科技巨头(如Facebook、Twitter和英伟达)都使用定制版的Torch用于人工智能研究,这大大促进了Torch的开发。Torch是BSD3协议下的开源项目。然而,随着Facebook对Caffe2的研究,以及其对移动设备的支持,Caffe2正成为主要的深度学习框架。
- Torch的编程语言为Lua。Lua不是主流语言,在开发人员没有熟练掌握Lua之前,使用Torch很难提高开发的整体生产力。
- Torch缺乏TensorFlow的分布式应用程序管理框架,也缺乏MXNet和Deeplearning4J对YARN的支持。缺乏多种编程语言的API也限制了开发人员。
PyTorch
- 地址:http://pytorch.org/
- PyTorch由AdamPaszke、SamGross与SoumithChintala等人牵头开发,其成员来自FacebookFAIR和其他多家实验室。它是一种Python优先的深度学习框架,在今年1月被开源,提供了两种高层面的功能:
- 使用强大的GPU加速的Tensor计算(类似numpy)
- 构建于基于tape的autograd系统的深度神经网络
- 该框架结合了Torch7高效灵活的GPU加速后端库与直观的Python前端,它的特点是快速成形、代码可读和支持最广泛的深度学习模型。如有需要,你可以复用你最喜欢的Python软件包(如numpy、scipy和Cython)来扩展PyTorch。该框架因为其灵活性和速度,在推出以后迅速得到了开发者和研究人员的青睐。随着GitHub上越来越多代码的出现,PyTorch作为新框架缺乏资源的问题已经得以缓解。
Deeplearning4J
- 地址:https://deeplearning4j.org/
- Deeplearning4J(DL4J)是用Java和Scala编写的Apache2.0协议下的开源、分布式神经网络库。DL4J最初由SkyMind公司的AdamGibson开发,是唯一集成了Hadoop和Spark的商业级深度学习网络,并通过Hadoop和Spark协调多个主机线程。DL4J使用Map-Reduce来训练网络,同时依赖其它库来执行大型矩阵操作。
- DL4J框架支持任意芯片数的GPU并行运行(对训练过程至关重要),并支持YARN(Hadoop的分布式应用程序管理框架)。DL4J支持多种深度网络架构:RBM、DBN、卷积神经网络(CNN)、循环神经网络(RNN)、RNTN和长短时间**网络(LTSM)。DL4J还对矢量化库Canova提供支持。
- DL4J使用Java语言实现,本质上比Python快。在用多个GPU解决非平凡图像(non-trivialimage)识别任务时,它的速度与Caffe一样快。该框架在图像识别、欺诈检测和自然语言处理方面的表现出众。
Theano
- 地址:http://deeplearning.net/software/theano/
- Theano由蒙特利尔大学算法学习人工智能实验室(MILA)维护。以Theano的创始人YoshuaBengio为首,该实验室是深度学习研究领域的重要贡献者,拥有约30至40名学生和教师。Theano支持快速开发高效的机器学习算法,在BSD协议下发布。
- Theano的架构如同一个黑箱;整个代码库和接口使用Python,其中C/CUDA代码被打包成Python字符串。这使得开发人员很难导航(navigate)、调试和重构。
- Theano开创了将符号图用于神经网络编程的趋势。Theano的符号式API支持循环控制(即scan),这使得实现RNN容易且高效。
- Theano缺乏分布式应用程序管理框架,只支持一种编程开发语言。Theano是很好的学术研究工具,在单个CPU上运行的效率比TensorFlow更有效。然而,在开发和支持大型分布式应用程序时,使用Theano可能会遇到挑战。
|