From b460595dd7b831a07cdd3e59ad726d99db4ba557 Mon Sep 17 00:00:00 2001 From: Wenlong Ding Date: Mon, 22 Mar 2021 16:20:11 +0800 Subject: [PATCH] lavfi/dnn/dnn_backend_native_layer_mathunary: add exp support Signed-off-by: Wenlong Ding --- libavfilter/dnn/dnn_backend_native_layer_mathunary.c | 4 ++++ libavfilter/dnn/dnn_backend_native_layer_mathunary.h | 1 + tools/python/convert_from_tensorflow.py | 3 ++- tools/python/convert_header.py | 2 +- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libavfilter/dnn/dnn_backend_native_layer_mathunary.c b/libavfilter/dnn/dnn_backend_native_layer_mathunary.c index 1bb05d02a7..bd28ec67d1 100644 --- a/libavfilter/dnn/dnn_backend_native_layer_mathunary.c +++ b/libavfilter/dnn/dnn_backend_native_layer_mathunary.c @@ -146,6 +146,10 @@ int ff_dnn_execute_layer_math_unary(DnnOperand *operands, const int32_t *input_o for (int i = 0; i < dims_count; ++i) dst[i] = round(src[i]); return 0; + case DMUO_EXP: + for (int i = 0; i < dims_count; ++i) + dst[i] = exp(src[i]); + return 0; default: av_log(ctx, AV_LOG_ERROR, "Unmatch math unary operator\n"); return DNN_ERROR; diff --git a/libavfilter/dnn/dnn_backend_native_layer_mathunary.h b/libavfilter/dnn/dnn_backend_native_layer_mathunary.h index 2199931e6e..151a73200a 100644 --- a/libavfilter/dnn/dnn_backend_native_layer_mathunary.h +++ b/libavfilter/dnn/dnn_backend_native_layer_mathunary.h @@ -46,6 +46,7 @@ typedef enum { DMUO_CEIL = 13, DMUO_FLOOR = 14, DMUO_ROUND = 15, + DMUO_EXP = 16, DMUO_COUNT } DNNMathUnaryOperation; diff --git a/tools/python/convert_from_tensorflow.py b/tools/python/convert_from_tensorflow.py index 1a5d93fbb7..38e64c1c94 100644 --- a/tools/python/convert_from_tensorflow.py +++ b/tools/python/convert_from_tensorflow.py @@ -78,7 +78,8 @@ class TFConverter: self.mathbin2code = {'Sub':0, 'Add':1, 'Mul':2, 'RealDiv':3, 'Minimum':4, 'FloorMod':5} self.mathun2code = {'Abs':0, 'Sin':1, 'Cos':2, 'Tan':3, 'Asin':4, 'Acos':5, 'Atan':6, 'Sinh':7, 'Cosh':8, 'Tanh':9, 'Asinh':10, - 'Acosh':11, 'Atanh':12, 'Ceil':13, 'Floor':14, 'Round':15} + 'Acosh':11, 'Atanh':12, 'Ceil':13, 'Floor':14, 'Round':15, + 'Exp':16} self.mirrorpad_mode = {'CONSTANT':0, 'REFLECT':1, 'SYMMETRIC':2} self.name_operand_dict = {} diff --git a/tools/python/convert_header.py b/tools/python/convert_header.py index 782a6341f9..143f92c42e 100644 --- a/tools/python/convert_header.py +++ b/tools/python/convert_header.py @@ -23,4 +23,4 @@ str = 'FFMPEGDNNNATIVE' major = 1 # increase minor when we don't have to re-convert the model file -minor = 22 +minor = 23