Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Different convolutions within same TCN layer #14

Open
FabianB98 opened this issue May 22, 2024 · 3 comments
Open

Different convolutions within same TCN layer #14

FabianB98 opened this issue May 22, 2024 · 3 comments

Comments

@FabianB98
Copy link

Hi,

I'm currently trying to implement the network architecture described in the paper "User-Driven Fine-Tuning for Beat Tracking" by Pinto et al., 2021. Within this network architecture, the authors propose the usage of a TCN where each TCN layer uses two separate sets of dilated convolutions, where one of the dilated convolutions has a dilation of twice that of the first dilated convolution. In figure 2 of that paper, they depict their TCN layout as follows:

Bildschirmfoto vom 2024-05-22 14-24-49

As you can see, there are two dilated convolutions per TCN layer: "Dilated Convolution 1" with a dilation of dr1, and "Dilated Convolution 2" with a dilation of dr2 = 2 * dr1. The results of these dilations are then concatenated before the activation function, dropout and a 1x1 convolution (as a way of keeping the dimensionality equal throughout the TCN layers) are applied.

From what I could find so far, it appears as if this package only supports a single dilation rate within each TCN layer, which leads me to believe that it is not possible to implement this architecture using this Python package. Is my understanding of this correct? Or am I simply missing something (potentially obvious) and it is possible to implement the proposed network architecture with this package?

@paul-krug
Copy link
Owner

The architecture of the residual block is indeed different from the one implemented in this package. However, you could fork the repo and just modify the temporal block in order to include two parallel convolutions with different dilation rates. That should be relatively straight forward.

@FabianB98
Copy link
Author

Thank you for your response. I'll adjust the temporal block in a fork later this week or next week when I find time to do so. Would you mind if I try to incorporate these changes in a non-API-breaking way such that we could merge them in a PR?

@FabianB98
Copy link
Author

It may have taken a bit longer than anticipated, but I think my changes are now ready to be reviewed in a PR (see #15). It took a bit longer than I initially hoped, but I wanted to be sure that my changes work by training a network with these changes made to the package (and I actually found a few things which I tweaked throughout). Who could have thought that training a neural network on just a regular consumer GPU may take a while :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants