Caffe的核心积木:Layer层类详解
发布时间
阅读量:
阅读量
0.简介
在Caffe框架中,Layer层类作为构建网络结构的基础模块,同时也是进行模型训练的关键组成部分,因此可将其视作Caffe架构中的核心构建单元。通过从Layer基类派生出多种具备不同功能的子类,各类层类通过具体实现两个虚函数Forward()与Backward(),从而形成具有多样化功能的层结构。其中,Forward函数用于根据输入数据bottom执行前向计算以生成输出数据top,而Backward函数则负责依据输出数据top反向计算以更新输入数据bottom的相关参数。
1.Layer基类设计与实现
layer.hpp作为所有网络层的基础类,其中封装了一系列通用的接口(这些接口在各个派生类中均有体现),例如:
(前馈_cpu 或 前馈_gpu):依据输入的bottom blob数值,计算出top blob的数值。需注意的是,部分层并未提供对应的GPU版本。
(反馈_cpu 或 反馈_gpu):反馈过程:根据top blob的误差梯度,计算出bottom blob的梯度值。
Layersetup:用于读取特定层类的layer param(层参数),为后续进行reshape操作做好准备。
reshape:根据输入到该层的bottom blob形状以及当前层所采用的定制化计算策略(即该层的具体逻辑),确定top blob的形状,并提前分配相应
全部评论 (0)
还没有任何评论哟~
