目前流行的深度学习网络框架

来源:互联网 发布:司法考试培训网络班 编辑:程序博客网 时间:2024/04/29 16:53
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
原创粉丝点击