什么是Caffe?
Caffe是一个清晰而高效的深度学习框架,主要用C++/CUDA编写,支持命令行、Python和Matlab接口,可以在CPU和GPU之间无缝切换。它的全称是Convolutional Architecture for Fast Feature Embedding,核心语言是C++。
Caffe的特点
- 模块化:Caffe设计之初就做到了尽可能的模块化,允许对数据格式、网络层和损失函数进行扩展。
- 表示和实现分离:Caffe的模型定义是用Protocol Buffer语言写进配置文件的,支持网络架构。
- 测试覆盖:每一个单一的模块都对应一个测试。
- Python和Matlab接口:同时提供两种接口。
- 预训练参考模型:针对视觉项目,Caffe提供了一些参考模型。
Caffe架构
Caffe通过“Blobs”即以四维数组的方式存储和传递数据。Blobs提供了一个统一的内存接口,用于批量图像(或其他数据)的操作和参数更新,Models是以Google Protocol Buffers的方式存储在磁盘上的。大型数据存储在LevelDB数据库中。
Caffe的硬件环境
CPU的选择:Caffe支持CPU和GPU训练。如果采用CPU训练,CPU支持的线程越多越好。
GPU的选择:因为Caffe只支持cuda库,所以选择Caffe作为深度学习框架一定要选用NVIDIA显卡。
内存的选择:选择支持双通道的内存以及高频率的内存有利于训练。
硬盘选择:Caffe采用单独线程异步方式从硬盘中顺序读取数据,需要根据实际情况看是否考虑固态硬盘(SSD)。
Caffe的依赖库
Boost库、GFlags库、GLog库、LevelDB库、LMDB库、ProtoBuf库、HDF5库、snappy库等。
Caffe的接口
Caffe提供Python接口Pycaffe、Matlab接口matcaffe和命令行接口。
