1 用Net::Init()。做了两件事:一、绑架所有的layers和blobs,调用 layers’SetUp()
函数。验证全部网络的正确性等一系列琐碎的事。二、初始化时给出一些日志信息Also, during initialization the Net explains its initialization by logging to INFO as it goes...
2 建网时有很多细节被隐藏,建网后,考虑有什么模式,CPU?GPU? by setting a single switch defined in Caffe::mode()
and set by Caffe::set_mode()
.无论是用哪种模式,结果一样。
3 两种模式无缝连接,独立于模型的定义。为了更好地研究和部署,建议将模型定义和配置分开。The CPU / GPU switch is seamless and independent of the model definition. For research and deployment alike it is best to divide model and implementation.
4 模型的定义:The models are defined in plaintext protocol buffer schema (prototxt) while the learned models are serialized as binary protocol buffer (binaryproto) .caffemodel files.
5 模型的格式:The model format is defined by the protobuf schema in caffe.proto. The source file is mostly self-explanatory so one is encouraged to check it out.
6 谷歌的牛逼:Caffe speaks Google Protocol Buffer for the following strengths:...
- Nets, Layers, and Blobs: the anatomy of a Caffe model.
- Forward / Backward: the essential computations of layered compositional models.
- Loss: the task to be learned is defined by the loss.
- Solver: the solver coordinates model optimization.
- Layer Catalogue: the layer is the fundamental unit of modeling and computation – Caffe’s catalogue includes layers for state-of-the-art models.
- Interfaces: command line, Python, and MATLAB Caffe.
- Data: how to caffeinate data for model input.
-
For a closer look at a few details:
- Caffeinated Convolution: how Caffe computes convolutions.
自此,caffe入门基础了解完毕。开始动手...