[FFmpeg-devel] [GSOC] [PATCH] On the fly generation of default DNN models and code style fixes

Michael Niedermayer michael at niedermayer.cc
Mon Jul 30 02:01:15 EEST 2018


On Sat, Jul 28, 2018 at 01:00:53PM +0300, Sergey Lavrushkin wrote:
> 2018-07-28 4:31 GMT+03:00 Michael Niedermayer <michael at niedermayer.cc>:
> 
> > On Fri, Jul 27, 2018 at 08:06:15PM +0300, Sergey Lavrushkin wrote:
> > > Hello,
> > >
> > > The first patch provides on the fly generation of default DNN models,
> > > that eliminates data duplication for model weights. Also, files with
> > > internal weights
> > > were replaced with automatically generated one for models I trained.
> > > Scripts for training and generating these files can be found here:
> > > https://github.com/HighVoltageRocknRoll/sr
> > > Later, I will add a description to this repo on how to use it and
> > benchmark
> > > results for trained models.
> > >
> > > The second patch fixes some code style issues for pointers in DNN module
> > > and sr filter. Are there any other code style fixes I should make for
> > this
> > > code?
> >
> >
> > It seems the code with these patches produces some warnings:
> >
> > In file included from libavfilter/dnn_backend_native.c:27:0:
> > libavfilter/dnn_srcnn.h:2113:21: warning: ‘srcnn_consts’ defined but not
> > used [-Wunused-variable]
> >  static const float *srcnn_consts[] = {
> >                      ^
> > libavfilter/dnn_srcnn.h:2122:24: warning: ‘srcnn_consts_dims’ defined but
> > not used [-Wunused-variable]
> >  static const long int *srcnn_consts_dims[] = {
> >                         ^
> > libavfilter/dnn_srcnn.h:2142:20: warning: ‘srcnn_activations’ defined but
> > not used [-Wunused-variable]
> >  static const char *srcnn_activations[] = {
> >                     ^
> > In file included from libavfilter/dnn_backend_native.c:28:0:
> > libavfilter/dnn_espcn.h:5401:21: warning: ‘espcn_consts’ defined but not
> > used [-Wunused-variable]
> >  static const float *espcn_consts[] = {
> >                      ^
> > libavfilter/dnn_espcn.h:5410:24: warning: ‘espcn_consts_dims’ defined but
> > not used [-Wunused-variable]
> >  static const long int *espcn_consts_dims[] = {
> >                         ^
> > libavfilter/dnn_espcn.h:5432:20: warning: ‘espcn_activations’ defined but
> > not used [-Wunused-variable]
> >  static const char *espcn_activations[] = {
> >                     ^
> >
> 
> Here is the patch, that fixes these warnings.

>  dnn_backend_tf.c |   64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
>  dnn_espcn.h      |   37 -------------------------------
>  dnn_srcnn.h      |   35 ------------------------------
>  3 files changed, 63 insertions(+), 73 deletions(-)
> 1faef51b86165326a4693c07a203113e2c85f7fb  0003-libavfilter-Fixes-warnings-for-unused-variables-in-d.patch
> From 37cd7bdf2610e1c3e89210a49e8f5f3832726281 Mon Sep 17 00:00:00 2001
> From: Sergey Lavrushkin <dualfal at gmail.com>
> Date: Sat, 28 Jul 2018 12:55:02 +0300
> Subject: [PATCH 3/3] libavfilter: Fixes warnings for unused variables in
>  dnn_srcnn.h, dnn_espcn.h, dnn_backend_tf.c.
> 
> ---
>  libavfilter/dnn_backend_tf.c | 64 +++++++++++++++++++++++++++++++++++++++++++-
>  libavfilter/dnn_espcn.h      | 37 -------------------------
>  libavfilter/dnn_srcnn.h      | 35 ------------------------
>  3 files changed, 63 insertions(+), 73 deletions(-)
> 
> diff --git a/libavfilter/dnn_backend_tf.c b/libavfilter/dnn_backend_tf.c
> index 6307c794a5..7a4ad72d27 100644
> --- a/libavfilter/dnn_backend_tf.c
> +++ b/libavfilter/dnn_backend_tf.c
> @@ -374,9 +374,71 @@ DNNModel *ff_dnn_load_default_model_tf(DNNDefaultModel model_type)
>      TFModel *tf_model = NULL;
>      TF_OperationDescription *op_desc;
>      TF_Operation *op;
> -    TF_Operation *const_ops_buffer[6];
>      TF_Output input;
>      int64_t input_shape[] = {1, -1, -1, 1};
> +    const char tanh[] = "Tanh";
> +    const char sigmoid[] = "Sigmoid";
> +    const char relu[] = "Relu";
> +
> +    const float *srcnn_consts[] = {
> +        srcnn_conv1_kernel,
> +        srcnn_conv1_bias,
> +        srcnn_conv2_kernel,
> +        srcnn_conv2_bias,
> +        srcnn_conv3_kernel,
> +        srcnn_conv3_bias
> +    };
> +    const long int *srcnn_consts_dims[] = {
> +        srcnn_conv1_kernel_dims,
> +        srcnn_conv1_bias_dims,
> +        srcnn_conv2_kernel_dims,
> +        srcnn_conv2_bias_dims,
> +        srcnn_conv3_kernel_dims,
> +        srcnn_conv3_bias_dims
> +    };
> +    const int srcnn_consts_dims_len[] = {
> +        4,
> +        1,
> +        4,
> +        1,
> +        4,
> +        1
> +    };

not important at all but, why do you remove "static" from these ?

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

it is not once nor twice but times without number that the same ideas make
their appearance in the world. -- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20180730/a38e4ae0/attachment.sig>


More information about the ffmpeg-devel mailing list