首页 > 代码库 > caffe源码分析--poolinger_layer.cpp
caffe源码分析--poolinger_layer.cpp
caffe源码分析--poolinger_layer.cpp
对于采样层,cafffe里实现了最大采样和平均采样的算法。
最大采样,给定一个扫描窗口,找最大值,
平均采样,扫描窗口内所有值的平均值。
其实对于caffe的实现一直有个疑问,
就是每一层貌似没有绑定一个激活函数?
看ufldl教程,感觉激活函数是必要存在的。
这怎么解释呢?
看到源码中,看到一些激活函数,比如sigmoid_layer.cpp和sigmoid_layer.cu。
也就是说,激活函数作为layer层面来实现了。当然,还有tanh_layer和relu_layer。
那,这个意思是说,让我们建立网络的时候更加随意,可自由搭配激活函数吗?
但是,我看了caffe自带的那些例子,貌似很少见到用了激活函数layer的,顶多看到用了relu_layer,其他的没见过。
这意思是说,激活函数不重要吗?真是费解啊。
// Copyright 2013 Yangqing Jia #include <algorithm> #include <cfloat> #include <vector> #include "caffe/layer.hpp" #include "caffe/vision_layers.hpp" #include "caffe/util/math_functions.hpp" using std::max; using std::min; namespace caffe { template <typename Dtype> void PoolingLayer<Dtype>::SetUp(const vector<Blob<Dtype>*>& bottom, vector<Blob<Dtype>*>* top) { CHECK_EQ(bottom.size(), 1) << "PoolingLayer takes a single blob as input."; CHECK_EQ(top->size(), 1) << "PoolingLayer takes a single blob as output."; KSIZE_ = this->layer_param_.kernelsize();//核大小 STRIDE_ = this->layer_param_.stride();//步长 CHANNELS_ = bottom[0]->channels();//通道 HEIGHT_ = bottom[0]->height();//高 WIDTH_ = bottom[0]->width();//宽 POOLED_HEIGHT_ = static_cast<int>( ceil(static_cast<float>(HEIGHT_ - KSIZE_) / STRIDE_)) + 1;//计算采样之后的高 POOLED_WIDTH_ = static_cast<int>( ceil(static_cast<float>(WIDTH_ - KSIZE_) / STRIDE_)) + 1;//计算采样之后的宽 (*top)[0]->Reshape(bottom[0]->num(), CHANNELS_, POOLED_HEIGHT_,//采样之后大小 POOLED_WIDTH_); // If stochastic pooling, we will initialize the random index part. if (this->layer_param_.pool() == LayerParameter_PoolMethod_STOCHASTIC) { rand_idx_.Reshape(bottom[0]->num(), CHANNELS_, POOLED_HEIGHT_, POOLED_WIDTH_); } } // TODO(Yangqing): Is there a faster way to do pooling in the channel-first // case? template <typename Dtype> void PoolingLayer<Dtype>::Forward_cpu(const vector<Blob<Dtype>*>& bottom, vector<Blob<Dtype>*>* top) { const Dtype* bottom_data = http://www.mamicode.com/bottom[0]->cpu_data();//采样层输入>
本文作者:linger
本文链接:http://blog.csdn.net/lingerlanlan/article/details/38294169
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。