Advertisement

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)

还没有任何评论哟~