作者:来自读者投稿
来源:Python数据之道
深度学习中几种常用框架的介绍
深度学习在今天之所以能够非常普及,很重要的一个原因是由于学术界和工业界贡献的各种各样的开源软件,这些开源的软件中集成了很多深度学习中用到的网络细节,也使我们的开发便捷了许多,下面我们来介绍几种深度学习中常用的框架,并将这几种框架做个对比。
1 Caffe
http://caffe.berkeleyvision.org
Caffe 框架在图像、视频领域的应用非常广泛,它的特点有以下几点:
依赖了大量的第三方库
为了读取图像,以及简单的图像处理,链接很重的 OpenCV 库
Boost 来实现一些 C++ 的高级特征
HD5/LMDB/LEVELDB 用来做数据的 IO
ProtoBuffer 使用随处可见
基于层的设计思路
Blob模块:实现了Tensor的功能,保持数据和梯度
Layer模块:根据输入计算输出,同时保存权重/梯度
Net模块:由多个layer组成,实现前向或后向的计算
Solver模块:最优化模块,利用梯度值更新权重
Protocol Buffer技术
引入 protocol buffer技术,省去编写大量描述性的 C++代码,比如配置参数、属性变量等等
方便序列化,用户可以直接阅读 prototxt文件,来了解网络结构