source: src/ai/conv2d.h @ d91fa83

feature/cnnfeature/crepe
Last change on this file since d91fa83 was b6097ac, checked in by Paul Brossier <piem@piem.org>, 3 years ago

[conv2d] set_stride accepts int[]

  • Property mode set to 100644
File size: 2.0 KB
Line 
1/*
2  Copyright (C) 2018 Paul Brossier <piem@aubio.org>
3
4  This file is part of aubio.
5
6  aubio is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10
11  aubio is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  GNU General Public License for more details.
15
16  You should have received a copy of the GNU General Public License
17  along with aubio.  If not, see <http://www.gnu.org/licenses/>.
18
19*/
20
21#ifndef AUBIO_CONV2D_H
22#define AUBIO_CONV2D_H
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28typedef struct _aubio_conv2d_t aubio_conv2d_t;
29
30/** create a new conv2d layer */
31aubio_conv2d_t *new_aubio_conv2d(uint_t filters, uint_t *kernel_shape);
32
33/** perform forward 2D convolution */
34void aubio_conv2d_do(aubio_conv2d_t *t, aubio_tensor_t *input_tensor,
35        aubio_tensor_t *activations);
36
37/** TODO: implement */
38void aubio_conv2d_train(aubio_conv2d_t *t, aubio_tensor_t *input_tensor);
39
40/** set internal kernel weights */
41uint_t aubio_conv2d_set_kernel(aubio_conv2d_t *t, aubio_tensor_t *kernel);
42
43/** get conv2d weights */
44aubio_tensor_t *aubio_conv2d_get_kernel(aubio_conv2d_t *t);
45
46/** set internal biases */
47uint_t aubio_conv2d_set_bias(aubio_conv2d_t *t, fvec_t *bias);
48
49/** get conv2d biases */
50fvec_t *aubio_conv2d_get_bias(aubio_conv2d_t *t);
51
52/** set conv2d stride */
53uint_t aubio_conv2d_set_stride(aubio_conv2d_t *c,
54    uint_t stride[2]);
55
56uint_t *aubio_conv2d_get_stride(aubio_conv2d_t* t);
57
58uint_t aubio_conv2d_set_padding_mode(aubio_conv2d_t *c,
59    const char_t *padding_mode);
60
61uint_t aubio_conv2d_get_output_shape(aubio_conv2d_t *t,
62        aubio_tensor_t *input_tensor, uint_t *shape);
63
64void del_aubio_conv2d(aubio_conv2d_t *t);
65
66#ifdef __cplusplus
67}
68#endif
69
70#endif /* AUBIO_CONV2D_H */
Note: See TracBrowser for help on using the repository browser.