From patchwork Tue May 21 06:52:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xuewei Meng X-Patchwork-Id: 13217 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 9981B449BA9 for ; Tue, 21 May 2019 09:59:58 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7A5F268A656; Tue, 21 May 2019 09:59:58 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f195.google.com (mail-pf1-f195.google.com [209.85.210.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 40ABB68066B for ; Tue, 21 May 2019 09:59:51 +0300 (EEST) Received: by mail-pf1-f195.google.com with SMTP id 13so8551218pfw.9 for ; Mon, 20 May 2019 23:59:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=bxcB0wT/fmyzHbG9QPLPb6pPcwxfA3Uv2gNa00vUu68=; b=fj9S6saY+Nb/ZdePLxdPQwl2ngBGYnNCrqveEukMbBNaodAtaYv02AJuykmVN2LE0x Pn/qc2YW3MmIhSMVXWmwWBCt9Tti7ERJciKEdvPYJzaaotAb+dkeySHQC3QnYwl28mjD BLP4kJ2d1xEFVSMw/d8kfJb+D9Z/3qMEY1U/Uq+kcHC+stms0xiGAF8PMbeE7/ZaPGd6 hfvcy7jM9Khyu65xRJDXzItMA8lJU5lZSm7Qw86d4AGJglf33Cvr9aucOaeMpQP6H8we i0XTTT2mvQMTlq9gcK5FjTy9z5h5aaJlrQpDgwx+ez/a5Obx9NuM5IHGXbKD5KW353V3 Krow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=bxcB0wT/fmyzHbG9QPLPb6pPcwxfA3Uv2gNa00vUu68=; b=HEg1FGIcK9tq248Bm1i0K8a2RAkoIMsupLrOek/QJpZzirDr/XGbQdVe0ay1YVZ7CA UFb+biUcJnPPuIAM/+9kkadEZ9cEyAZP1vl5jWy2RvyhTL005t6VynQ3c/HU5vAFLe6D w6AHv3dFjb0KXu8Us5r7iLk70VLrM470OpdZv1+E+uPaTZdaGQvNQabuXnFf8+PHC9v1 OlNVxJ54wLkoyVpMZ0ysm1JnqwDmansYDOKwBh9UIycv0idVhWrd3Hj13qFlIMv99VPi iROXnmbjHFiFwNfh299PRqoU+6ntLmC8S16T25ROPytSUowajA0qscKzocrP3YHGbzc9 Omuw== X-Gm-Message-State: APjAAAUQS1u8xJg32RgIUM25K6yfieSqxbPjg8X1LciJ2/kyhC+MebFp 8+YE8gNf4RdBrODhrUtLOyTRRdX1pUnCkw== X-Google-Smtp-Source: APXvYqzGQrx64roETbpwxXFmir/4ZyCu1jNqVK79TszM/L8cGI/5vGU/RYNsHYAaOasO86aEMLlzsQ== X-Received: by 2002:a62:5cc6:: with SMTP id q189mr54477445pfb.114.1558421572376; Mon, 20 May 2019 23:52:52 -0700 (PDT) Received: from DESKTOP-IACK8OK.localdomain ([2001:da8:201:3474:fd5b:f37f:4c0b:c55]) by smtp.gmail.com with ESMTPSA id a26sm37227659pfl.177.2019.05.20.23.52.51 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 23:52:51 -0700 (PDT) From: Xuewei Meng To: ffmpeg-devel@ffmpeg.org Date: Tue, 21 May 2019 14:52:49 +0800 Message-Id: <20190521065249.13264-1-xwmeng96@gmail.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH] libavfilter/dnn_native: Add multiple activation functions in dnn native X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Add "Leaky_relu" and "None" option in activation function. Signed-off-by: Xuewei Meng --- libavfilter/dnn_backend_native.c | 5 +++++ libavfilter/dnn_backend_native.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) 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;