diff options
author | mfy43 <ted.sybil@gmail.com> | 2016-04-30 14:48:29 +0800 |
---|---|---|
committer | mfy43 <ted.sybil@gmail.com> | 2016-04-30 14:48:29 +0800 |
commit | 1aaffa6b9a56d4d580dea7bf3f1b7df1eec5da2f (patch) | |
tree | d705bbec5b701774a144810c5e60a73e346f9c39 /nerv/lib/matrix/generic/cumatrix.c | |
parent | 6051c37a2c55365a5834d5b4c11d973e2e4e1ad4 (diff) | |
parent | 1f5568a9e1457dcf5aadd08749aef6194370b43f (diff) |
Merge branch 'master' into 'master'
add relu layer
See merge request !2
Diffstat (limited to 'nerv/lib/matrix/generic/cumatrix.c')
-rw-r--r-- | nerv/lib/matrix/generic/cumatrix.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/nerv/lib/matrix/generic/cumatrix.c b/nerv/lib/matrix/generic/cumatrix.c index bc5f285..432222a 100644 --- a/nerv/lib/matrix/generic/cumatrix.c +++ b/nerv/lib/matrix/generic/cumatrix.c @@ -117,6 +117,25 @@ void nerv_matrix_(tanh_grad)(Matrix *nerr, const Matrix *err, const Matrix *outp NERV_SET_STATUS(status, NERV_NORMAL, 0); } +void nerv_matrix_(relu)(Matrix *a, const Matrix *b, + CuContext *context, Status *status) { + CHECK_SAME_DIMENSION(a, b, status); + PROFILE_START + cudak_(cuda_relu)(b, a); + PROFILE_STOP + NERV_SET_STATUS(status, NERV_NORMAL, 0); +} + +void nerv_matrix_(relu_grad)(Matrix *nerr, const Matrix *err, const Matrix *output, + CuContext *context, Status *status) { + CHECK_SAME_DIMENSION(nerr, err, status); + CHECK_SAME_DIMENSION(nerr, output, status); + PROFILE_START + cudak_(cuda_relu_grad)(output, err, nerr); + PROFILE_STOP + NERV_SET_STATUS(status, NERV_NORMAL, 0); +} + Matrix *nerv_matrix_(softmax)(Matrix *b, const Matrix *a, CuContext *context, Status *status) { Matrix *max, *max_idx; |