Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXuewei Meng <xwmeng96@gmail.com>2019-05-21 09:52:49 +0300
committerSteven Liu <lq@chinaffmpeg.org>2019-05-22 05:28:07 +0300
commitecc096513c32119341a1240b67778f3e24b4293e (patch)
tree1ee13847a020eef66c8637baedfbaf72b4f6b510 /libavfilter
parente45e6005ce6adbb91bf0a0a7194a8575650f0e31 (diff)
libavfilter/dnn_native: Add multiple activation functions in dnn native
Add "Leaky_relu" and "None" option in activation function. Reviewed-by: Guo, Yejun <yejun.guo@intel.com> Signed-off-by: Xuewei Meng <xwmeng96@gmail.com> Signed-off-by: Steven Liu <lq@onvideo.cn>
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/dnn_backend_native.c5
-rw-r--r--libavfilter/dnn_backend_native.h2
2 files changed, 6 insertions, 1 deletions
diff --git a/libavfilter/dnn_backend_native.c b/libavfilter/dnn_backend_native.c
index fa3f20e4a2..3c8465a283 100644
--- a/libavfilter/dnn_backend_native.c
+++ b/libavfilter/dnn_backend_native.c
@@ -270,6 +270,11 @@ static void convolve(const float *input, float *output, const ConvolutionalParam
break;
case SIGMOID:
output[n_filter] = 1.0f / (1.0f + exp(-output[n_filter]));
+ break;
+ case NONE:
+ break;
+ case LEAKY_RELU:
+ output[n_filter] = FFMAX(output[n_filter], 0.0) + 0.2 * FFMIN(output[n_filter], 0.0);
}
}
output += conv_params->output_num;
diff --git a/libavfilter/dnn_backend_native.h b/libavfilter/dnn_backend_native.h
index d70cd16387..7e4e943137 100644
--- a/libavfilter/dnn_backend_native.h
+++ b/libavfilter/dnn_backend_native.h
@@ -32,7 +32,7 @@
typedef enum {INPUT, CONV, DEPTH_TO_SPACE} DNNLayerType;
-typedef enum {RELU, TANH, SIGMOID} DNNActivationFunc;
+typedef enum {RELU, TANH, SIGMOID, NONE, LEAKY_RELU} DNNActivationFunc;
typedef enum {VALID, SAME, SAME_CLAMP_TO_EDGE} DNNConvPaddingParam;