您的位置:首页 > Web前端

深度学习21天实战caffe学习笔记《2 :深度学习工具》

2017-05-12 15:22 357 查看

深度学习工具汇总

1. Caffe【Convolutional Architecture for Fast Feature Embedding】

—基于C++/CUDA/Python 实现的卷积神经网络,提供面向命令行、matlab、python的接口;

—可以读源代码

—Caffe的main class:Blob 、Layer 、Net 、Solver

—Protocol Buffers:数据交换格式;

—优点:(1)、训练feeddorward network非常简单;

(2)、微调已经存在的网络;

(3)、训练时,不用写代码;

(4)、Python接口;

—缺点:(1)、大网络比如googlenet、resnet等不可行

(2)、用c++/CUDA创建新的GPU层;

(3)、循环网络不太合适;

2. Torch & Overfeat

—用c和Lua这种轻量级脚本语言写的;

—在Facebook、Deepmind、Twitter中很广泛;

—nn用于神经网络;

—CUNN

—Torch的主要部分是Modules:

—nngraph(拓扑结构可使用);

—Torch7带有8个内置包:

torch、lab&plot、qt、nn、image、optim(优化算法包)、unsup(包括非监督学习算法)、third-party、

—优点:(1)、一些module可以拿来组合使用;

(2)、很方便自己写Layer并且在GPU上运行;

(3)、很多库代码是用Lua写的,易读;

(4)、有很多预训练模型;

—缺点:(1)、用Lua这种不特别流行的语言编写;

(2)、Less plug-and-play than caffe;

(3)、对RNN不太适用;

OverFeat:在ImageNet中使用Torch7训练的特征提取器【图像识别+定位+检测】;

3. MxNet

—吸收了Minerva/Torch7/Theano的优点(多卡、多机分布式运行);

—编程接口:

–N维数组:通过背后的engine可以在性能和内存上优于其他框架;

–符号接口:可快速搭建一个神经网络,实现自动求导功能。

4. TensorFlow

—异构分布式框架 移植性好 开源

—computation Graphs思想;

—容易可视化 :tensorboard;

—多GPU(数据并行、模型并行)且多节点训练;

—预训练模型较少;

—优点: (1)、python+numpy;

(2)、计算图(RNNs适用);

(3)、编译速度快

(4)、可视化;

(5)、data和model并行;

—缺点:(1)、没有很多预训练模型;

5. Theano

—基于python

—计算图:if…else../switch 可抑制图标中的graph;

—高级库:karas lasagne;

—共享变量;

—loops:scan实现循环,很适用于RNNs;

—derivatives:有效的Jacobian/Vector products with R & L operators,symbolic Hessians;

—sparse matrices、optimizations、etc;

—多Gpu

—优点: (1)、python+numpy;

(2)、计算图;

(3)、RNNs很适用;

(4)、High Level Wrapper

—缺点: (1)、错误提示有时候没有帮助;

(2)、大型Model花费太长时间编译;

(3)、预训练模型不是特别好;

* 6. CNTK*

—高性能、高灵活、可扩展性好;

—支持CNN、LSTM、RNN等流行框架

—支持分布式训练

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: