FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
CaffeOnACL/include/caffe/layers/sigmoid_layer.hpp at master · hexujun/CaffeOnACL · GitHub
hexujun
CaffeOnACL
Repository navigation
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
CaffeOnACL
/
include
/
caffe
/
layers
/
sigmoid_layer.hpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
71 lines (61 loc) · 2.31 KB
Breadcrumbs
CaffeOnACL
/
include
/
caffe
/
layers
/
sigmoid_layer.hpp
Copy path
File metadata and controls
71 lines (61 loc) · 2.31 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#
ifndef
CAFFE_SIGMOID_LAYER_HPP_
#
define
CAFFE_SIGMOID_LAYER_HPP_
#
include
<
vector
>
#
include
"
caffe/blob.hpp
"
#
include
"
caffe/layer.hpp
"
#
include
"
caffe/proto/caffe.pb.h
"
#
include
"
caffe/layers/neuron_layer.hpp
"
namespace
caffe
{
/*
*
* @brief Sigmoid function non-linearity @f$
* y = (1 + \exp(-x))^{-1}
* @f$, a classic choice in neural networks.
*
* Note that the gradient vanishes as the values move away from 0.
* The ReLULayer is often a better choice for this reason.
*/
template
<
typename
Dtype>
class
SigmoidLayer
:
public
NeuronLayer
<Dtype> {
public:
explicit
SigmoidLayer
(
const
LayerParameter& param)
: NeuronLayer<Dtype>(param) {}
virtual
inline
const
char
*
type
()
const
{
return
"
Sigmoid
"
; }
protected:
/*
*
* @param bottom input Blob vector (length 1)
* -# @f$ (N \times C \times H \times W) @f$
* the inputs @f$ x @f$
* @param top output Blob vector (length 1)
* -# @f$ (N \times C \times H \times W) @f$
* the computed outputs @f$
* y = (1 + \exp(-x))^{-1}
* @f$
*/
virtual
void
Forward_cpu
(
const
vector<Blob<Dtype>*>& bottom,
const
vector<Blob<Dtype>*>& top);
virtual
void
Forward_gpu
(
const
vector<Blob<Dtype>*>& bottom,
const
vector<Blob<Dtype>*>& top);
/*
*
* @brief Computes the error gradient w.r.t. the sigmoid inputs.
*
* @param top output Blob vector (length 1), providing the error gradient with
* respect to the outputs
* -# @f$ (N \times C \times H \times W) @f$
* containing error gradients @f$ \frac{\partial E}{\partial y} @f$
* with respect to computed outputs @f$ y @f$
* @param propagate_down see Layer::Backward.
* @param bottom input Blob vector (length 1)
* -# @f$ (N \times C \times H \times W) @f$
* the inputs @f$ x @f$; Backward fills their diff with
* gradients @f$
* \frac{\partial E}{\partial x}
* = \frac{\partial E}{\partial y} y (1 - y)
* @f$ if propagate_down[0]
*/
virtual
void
Backward_cpu
(
const
vector<Blob<Dtype>*>& top,
const
vector<
bool
>& propagate_down,
const
vector<Blob<Dtype>*>& bottom);
virtual
void
Backward_gpu
(
const
vector<Blob<Dtype>*>& top,
const
vector<
bool
>& propagate_down,
const
vector<Blob<Dtype>*>& bottom);
};
}
//
namespace caffe
#
endif
//
CAFFE_SIGMOID_LAYER_HPP_
Back
|
FazBrowse Home
|
New Git URL