深度学习库比较
库名主语言从语言速度灵活性文档适合模型平台上手难易开发者模式
Tensorflo
C++
cuda/python/Matlab/Ruby/R
中等
好
中等
CNN/RNN
Linux,OSX
难
Google
分布式/声明式
Caffe
C++
cuda/python/Matlab
快
一般
全面
CNN
所有系统
中等
贾杨清
声明式
PyTorc
python
C/C++
中等
好
中等
-
–
中等
FaceBook
MXNet
c++
cuda/R/julia
快
好
全面
CNN
所有系统
中等
李沐和陈天奇等
分布式/声明式/命令式
Torch
lua
C/cuda
快
好
全面
CNN/RNN
Linux,OSX
中等
Facebook
命令式
Theano
python
c++/cuda
中等
好
中等
CNN/RNN
Linux, OSX
易
蒙特利尔理工学院
命令式
1.TensorFlow 的优点是:
它有一个直观的结构 ,顾名思义它有 “张量流”,你可以轻松地可视每个图中的每一个部分。
轻松地在 cpu / gpu 上进行分布式计算
平台的灵活性 。可以随时随地运行模型,无论是在移动端、服务器还是 PC 上。
1
2
3
1
2
3
1.1 TensorFlow 的限制 尽管 TensorFlow 是强大的,它仍然是一个低水平库,例如,它可以被认为是机器级语言,但对于大多数功能,您需要自己去模块化和高级接口,如 keras 它仍然在继续开发和维护,这是多么��啊! 它取决于你的硬件规格,配置越高越好 不是所有变成语言能使用它的 API 。 TensorFlow 中仍然有很多库需要手动导入,比如 OpenCL 支持。 上面提到的大多数是在 TensorFlow 开发人员的愿景,他们已经制定了一个路线图,计划库未来应该如何开发1
2
3
4
5
6
1
2
3
4
5
6
1.2 ensorFlow工作流程 建立一个计算图, 任何的数学运算可以使用 TensorFlow 支撑。 初始化变量, 编译预先定义的变量 创建 session, 这是神奇的开始的地方 ! 在 session 中运行图, 编译图形被传递到 session ,它开始执行它。 关闭 session, 结束这次使用。1
2
3
4
5
1
2
3
4
5
1.3 入门教程TensorFlow入门一-小石头的码疯窝
TensorFlow之深入理解Neural Style
TensorFlow之深入理解AlexNet-小石头的码疯窝
TensoFlow之深入理解GoogLeNet-小石头的码疯窝
TensorFlow之深入理解VGG\Residual Network
TensorFlow之深入理解Fast Neural Style
风格画之最后一弹MRF-CNN-小石头的码疯窝
深度学习之Neural Image Caption
1
2
3
1
2
3
2.1 Caffe的优势 1.上手快:模型与相应优化都是以文本形式而非代码形式给出。 2.Caffe给出了模型的定义、最优化设置以及预训练的权重,方便立即上手。 3.速度快:能够运行最棒的模型与海量的数据。 4.Caffe与cuDNN结合使用,测试AlexNet模型,在K40上处理每张图片只需要1.17ms. 5.模块化:方便扩展到新的任务和设置上。 6.可以使用Caffe提供的各层类型来定义自己的模型。 7.开放性:公开的代码和参考模型用于再现。 8.社区好:可以通过BSD-2参与开发与讨论。1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
2.2 Caffe 架构 2.2.1 预处理图像的leveldb构建 输入:一批图像和label (2和3) 输出:leveldb (4) 指令里包含如下信息: conver_imageset (构建leveldb的可运行程序) train/ (此目录放处理的jpg或者其他格式的图像) label.txt (图像文件名及其label信息) 输出的leveldb文件夹的名字 CPU/GPU (指定是在cpu上还是在gpu上运行code)1
2
3
4
5
6
7
8
1
2
3
4
5
6
7