一. TensorFlow
源码地址: https://github.com/tensorflow/tensorflow
完美的python创建网络计算图,使用CPU和GPU计算,目前使用人数最多的深度学习库,目前唯一的不足是创建的网络是静态的,不能动态调整网络。TensorFlow是相对高阶的机器学习库,使用python设计神经网络结构,不必为了追求高效率的实现亲自写C++或CUDA代码,和Theano一样支持自动求导,不需要用户通过反向传播求解梯度。其核心代码和Caffe一样是C++编写。除核心代码的C++接口,TensorFlow还有Python,Go,Java接口,通过SWIG(Simplified Wrapper and Interface Generator)实现。
二. Theano
源码地址: https://github.com/theano/theano
Theano诞生于2008的,由蒙特利尔大学Lisa Lab团队开发维护,因出现时间早,可以算是这类库的始祖之一。核心是一个数学表达式的编译器,专为处理大规模神经网络训练设计。 主要优势:
1)集成NumPy,可以直接使用NumPy和ndarray,API接口学习成本低
2)计算稳定性好,如可以精准计算输出值很小的函数(像log(1+x))
3)动态的生成C或CUDA代码,用以编译成高效机器代码
Theano是完全基于Python(C++/CUDA代码也是打包为Python字符串)的符号计算库。
三. Caffe
源码地址:https://github.com/BVLC/caffe
创始人是加州大学伯克利的Ph.D.贾扬清,同时是TensorFlow作者之一。 Caffe主要优点:
1)容易上手,网络结构是以配置文件形式定义,不需要代码设计风格
2)训练速度快,能训练state-of-the-art的模型与大规模数据
3)组件模块化,可方便拓展到新的模型和学习任务上 Caffe核心概念是Layer,每一个神经网络的模块都是一个Layer,Layer接收输入数据,同时经内部计算产出数据。设计网络时,只要把各个Layer通过编写protobuf配置文件定义拼接在一起组成完整网络。实现新的Layer时,需要将正向和反向两种计算过程的函数都实现,这部分需要用户自已写C++或者CUDA代码,对普通用户来说比较难上手。Caffe最开始设计时只针对图像,所以他对卷积神经网络支持的非常好。
四. Torch
源码地址:https://github.com/torch/torch7
Torch自已定位是LuaJIT上的高效科学计算库,优先GPU,上层使用lua语言作为网络设计语言,底层C++. Torch的nn库支持神经网络,自编码器,线性回归,卷积网络,循环神经网络等 ,同时支持定制的损失函数及梯度计算。 Torch也是基于Layer的连接来定义网络, Torch属于命令式编程模式。
五. Leaf
源码地址:https://github.com/autumnai/leaf
基于Rust语言,跨平台深度学习和机器智能框架,是autumnai AI计划重要组件
六. Deeplearning4J
源码地址:https://github.com/deeplearning4j/deeplearning4j
是基于Java和Scala的开源分布式深度学习库,由Skymind于2014年6月发布
七. Chainer
源码地址:https://github.com/chainer/chainer
由日本Preferred Networks公司于2015年6月发布,支持多GPU
八. Lasagne
源码地址:https://github.com/lasagne/lasagne
Lasagne是一个基于Theano的轻量级神经网络库
九. Keras
源码地址:https://github.com/fchollet/keras
Keras是一个崇尚极简、高度模块化的神经网库,使用python实现,可同时运行在TensorFlow和Theano上
十.CNTK
源码地址:https://github.com/microsoft/CNTK
Computational Network Toolkit是微软研究院的学习框架
十一.DSSTNE
源码地址:https://github.com/amzn/amazon-dsstne
Deep Scalable Sparse Tensor Network Engine是亚马逊的稀疏神经网络框架
十二.DIGITS
源码地址:https://github.com/NVIDIA/DIGITS
Deep Learning GPU Training System是Caffe的高级封装,用在web上,通过url识别图
十三.MXNet
源码地址:https://github.com/dmlc/mxnet
NXNet是DMLC(Distributed Machine Learning Community)开发的库,AWS推荐
十四.R语言版TensorFlow
源码地址:https://github.com/rstudio/tensorflow
十五.Node.js版TensorFlow
源码地址:https://github.com/node-tensorflow/node-tensorflow
十六.Julia版TensorFlow
源码地址:https://github.com/malmaud/tensorflow.jl