@@ -28,16 +28,28 @@ limitations under the License. */
28
28
namespace paddle {
29
29
30
30
static ClassRegistrar<ActivationFunction> gActivationRegistrar ;
31
+ /* *
32
+ * @def ACTIVATION_CLASS_NAME
33
+ * @brief Macro for getting derived activation class name
34
+ * @note ACTIVATION_CLASS_NAME(softmax) softmax_;
35
+ * means softmaxActivation softmax_;
36
+ */
31
37
#define ACTIVATION_CLASS_NAME (ACTIVATION_NAME ) ACTIVATION_NAME##Activation
32
-
38
+ /* *
39
+ * @def BEGIN_DEFINE_ACTIVATION
40
+ * @brief Macro for defining a devried activation class
41
+ */
33
42
#define BEGIN_DEFINE_ACTIVATION (ACTIVATION_NAME ) \
34
43
class ACTIVATION_CLASS_NAME (ACTIVATION_NAME) : public ActivationFunction { \
35
44
private: \
36
45
static const std::string name; \
37
46
\
38
47
public: \
39
48
const std::string& getName () const { return name; }
40
-
49
+ /* *
50
+ * @def END_DEFINE_ACTIVATION
51
+ * @brief Macro for registering a derived activation class
52
+ */
41
53
#define END_DEFINE_ACTIVATION (ACTIVATION_NAME ) \
42
54
}; \
43
55
const std::string ACTIVATION_CLASS_NAME (ACTIVATION_NAME)::name = \
@@ -66,18 +78,21 @@ static InitFunction __reg_activation__identity([] {
66
78
});
67
79
68
80
/* *
69
- * SigmoidActivation
70
- *
81
+ * @brief Sigmoid Activation
82
+ * \f[
71
83
* f(z) = \frac{1}{1+exp(-z)}
84
+ * \f]
72
85
*/
73
86
BEGIN_DEFINE_ACTIVATION (sigmoid)
74
87
void forward (Argument& act) { act.value ->sigmoid (*act.value ); }
75
88
void backward (Argument& act) { act.grad ->sigmoidDerivative (*act.value ); }
76
89
END_DEFINE_ACTIVATION (sigmoid)
77
90
78
91
/* *
79
- * Do Softmax activation for all sample.
92
+ * @brief Softmax Activation
93
+ * \f[
80
94
* P(y=j|x) = \frac{e^{x^Tw_j}}{\sum^K_{k=1}e^{x^Tw_k}}
95
+ * \f]
81
96
*/
82
97
BEGIN_DEFINE_ACTIVATION (softmax)
83
98
private:
@@ -115,8 +130,12 @@ void backward(Argument& act) {
115
130
}
116
131
END_DEFINE_ACTIVATION (softmax)
117
132
118
- // / Softmax on all frames of one sequence.
119
- // / Width of frame must be one.
133
+
134
+ /* *
135
+ * @brief Sequence_softmax Activation
136
+ * @note Softmax on all frames of one sequence.
137
+ * Width of frame must be one.
138
+ */
120
139
BEGIN_DEFINE_ACTIVATION (sequence_softmax)
121
140
private:
122
141
ACTIVATION_CLASS_NAME (softmax) softmax_;
@@ -156,8 +175,7 @@ void backward(Argument& act) {
156
175
END_DEFINE_ACTIVATION (sequence_softmax)
157
176
158
177
/* *
159
- * Relu Activation.
160
- *
178
+ * @brief Relu Activation.
161
179
* forward. y = max(0, z)
162
180
*
163
181
* derivative of relu is:
@@ -173,7 +191,7 @@ void backward(Argument& act) { act.grad->reluDerivative(*act.value); }
173
191
END_DEFINE_ACTIVATION (relu)
174
192
175
193
/* *
176
- * BRelu Activation.
194
+ * @brief BRelu Activation.
177
195
*
178
196
* forward. y = min(24, max(0, z))
179
197
*
@@ -192,9 +210,10 @@ void backward(Argument& act) { act.grad->breluDerivative(*act.value); }
192
210
END_DEFINE_ACTIVATION (brelu)
193
211
194
212
/* *
195
- * tanh activation .
196
- *
213
+ * @brief Tanh Activation .
214
+ * \f[
197
215
* f(z) = tanh(z)=\frac{e^z-e^{-z}}{e^z+e^{-z}}
216
+ * \f]
198
217
*/
199
218
BEGIN_DEFINE_ACTIVATION (tanh)
200
219
void forward (Argument& act) { act.value ->tanh (*act.value ); }
@@ -203,9 +222,10 @@ void backward(Argument& act) { act.grad->tanhDerivative(*act.value); }
203
222
END_DEFINE_ACTIVATION (tanh)
204
223
205
224
/* *
206
- * Scaled Tanh Activation
207
- *
225
+ * @brief Scaled Tanh Activation
226
+ * \f[
208
227
* f(z) = 1.7159 * tanh(2/3*z)
228
+ * \f]
209
229
*/
210
230
BEGIN_DEFINE_ACTIVATION (stanh)
211
231
private:
@@ -221,9 +241,10 @@ void backward(Argument& act) {
221
241
END_DEFINE_ACTIVATION (stanh)
222
242
223
243
/* *
224
- * Soft relu activation .
225
- *
244
+ * @brief Soft Relu Activation .
245
+ * \f[
226
246
* f(z) = ln(1+e^z)
247
+ * \f]
227
248
*/
228
249
BEGIN_DEFINE_ACTIVATION (softrelu)
229
250
void forward (Argument& act) { act.value ->softrelu (*act.value ); }
@@ -232,8 +253,7 @@ void backward(Argument& act) { act.grad->softreluDerivative(*act.value); }
232
253
END_DEFINE_ACTIVATION (softrelu)
233
254
234
255
/* *
235
- * Abs Activation.
236
- *
256
+ * @brief Abs Activation.
237
257
* Forward: f(z) = abs(z)
238
258
*
239
259
* Derivative:
@@ -258,9 +278,10 @@ void backward(Argument& act) { act.grad->absDerivative(*act.in); }
258
278
END_DEFINE_ACTIVATION (abs)
259
279
260
280
/* *
261
- * Square Activation.
262
- *
281
+ * @brief Square Activation.
282
+ * \f[
263
283
* f(z) = z^2.
284
+ * \f]
264
285
*/
265
286
BEGIN_DEFINE_ACTIVATION (square)
266
287
void forward (Argument& act) {
@@ -274,7 +295,12 @@ void forward(Argument& act) {
274
295
275
296
void backward (Argument& act) { act.grad ->squareDerivative (*act.in ); }
276
297
END_DEFINE_ACTIVATION (square)
277
-
298
+ /* *
299
+ * @brief Exponential Activation.
300
+ * \f[
301
+ * f(z) = e^z
302
+ * \f]
303
+ */
278
304
BEGIN_DEFINE_ACTIVATION (exponential)
279
305
void forward (Argument& act) { act.value ->exp (*act.value ); }
280
306
0 commit comments