【笔记】深度学习框架简介

来源:互联网 发布:淘宝的充值平台在哪里 编辑:程序博客网 时间:2024/06/04 17:46
1、Caffe
caffe的每一个模块都是一个Layer,设计网络结构时,只需要将layer拼接在一起。
优势:有很多训练好的模型,存储在Model Zoo中。
劣势:定义新的Layer比较麻烦,用户需要使用C++或者Cuda来定义,对RNN等时间序列的支持不好。
备注:scikit-learn中的estimator可以进行交叉验证和超参数的Grid search


2、Tensorflow
注意以下几个tf的组件/应用:
tensorboard 可视化:检测tf的运行过程,可视化computation graph
tensorflow serving组件:可以将tf训练好的模型导出,然后对外提供预测服务的RESTful接口
劣势:对于浅层网络,feed其mini-batch数据时,需要低效的Python循环来实现。


3、Theano
深度学习界的Numpy,基石;如同Numpy是Python科学计算的各个模块的基石。
对RNN的实现也很简单。


4、Torch
定义Layer不像Caffe那么麻烦,对RNN的实现也很简单。
编程语言:Lua


5、Keras
可以同时运行在Theano和Tensorflow上
编程语言:Python
优点:简单,新的模块容易添加,适用于最前沿的研究;支持级联的模型或任意的图结构的模型
缺点:无法使用多GPU


6、MXNet
最大的贡献者为百度
AWS(亚马逊公司旗下云计算服务平台)官方推荐的框架
优点:支持非常多的语言封装


7、DIGITS
Caffe的高级封装,模型定义、数据预处理都在浏览器中执行
优点:生成数据和结果的可视化统计报表,网络的可视化结构图
训练好的caffe模型可以直接使用


8、CNTK
语音识别领域广泛使用
支持多GPU
1-bit compression降低了通信代价
实现了1-bit SGD


9、DeepLearning4J
基于java和scala的开源分布式深度学习库
可以与hadoop和spark自动整合


10、Chainer
支持CUDA计算,少量代码即可加速
支持运行中动态定义的网络


11、Leaf
Autumn AI计划的重要组件
易于维护,依赖库少
性能好,速度快


12、DSSTNE
支持输入和输出非常多的Layer
模型并行
支持对超大稀疏数据的训练


注:笔记基于《Tensorflow实战》



原创粉丝点击