引言
Caffe 全称Convolutional Architecture for Fast Feature Embedding,是一个计算 CNN 相关算法的框架,用C++ 和 Python实现的。
Caffe 的优点与局限性:
优点: 第一个主流的工业级深度学习工具; 专精于图像处理
局限性:它有很多扩展,但是由于一些遗留的架构问题,不够灵活且对递归网络和语言建模的支持很差;基于层的网络结构,其扩展性不好,对于新增加的层,需要自己实现(forward, backward and gradient update)
Caffe 目录结构(2016年VS2019年)
--data/ 用于存放下载的训练数据
--docs/ 帮助文档
--examples/ 代码样例
--matlab/ MATLAB接文件
--python/ PYTHON接文件
--models/ 一些配置好的模型参数
--scripts/ 一些文档和数据会用到的脚本核心代码
--tools/ 保存的源码是用于生成二进制处理程序的,caffe 在训练时实际是直接调用这些二进制文件
--include/ Caffe 的实现代码的头文件
--src/ 实现Caffe 的源文件
$ tree -d (2019年)
.
├── cmake //cmake编译时会用到<非后续重点学习>
│ ├── External
│ ├── Modules
│ └── Templates
├── data //存放原始数据或数据获取方式的脚本文件
│ ├── cifar10 //cifar10数据集
│ ├── ilsvrc12 //ImageNet数据集
│ └── mnist //mnist手写数字数据
├── docker //Docker工具便于迁移<非后续重点学习>
│ ├── cpu
│ └── gpu
├── docs //doxygen工程文件放在这里<非后续重点学习>
│ ├── _layouts
│ ├── images
│ ├── stylesheets
│ └── tutorial
│ ├── fig
│ └── layers
├── examples //caffe的简单例程
│ ├── cifar10
│ ├── cpp_classification
│ ├── feature_extraction
│ ├── finetune_flickr_style
│ ├── finetune_pascal_detection
│ ├── hdf5_classification
│ ├── imagenet
│ ├── images
│ ├── mnist
│ ├── net_surgery
│ ├── pycaffe
│ │ └── layers
│ ├── siamese
│ └── web_demo
│ └── templates
├── include //caffe的头文件主要放在此目录下<后续学习的重点>
│ └── caffe
│ ├── layers
│ ├── test
│ └── util
├── matlab