深度学习工具汇总

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等流行框架
—支持分布式训练

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


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6