question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

ConvNormActivation block for 3D convolutions

See original GitHub issue

🚀 The feature

I suggest we add a Conv3d equivalent for the ConvNormActivation block

Motivation, pitch

This will be used in the upcoming ResNext3d implementation.

Alternatives

I see two possible alternatives:

  1. We can re-purpose the existing method in a BC way by adding an extra named parameter conv layer with default value of Conv2D.

  2. We can explicitly add a new class Conv3DNormActivation, which will be very similar to the existing one.

Additional context

No response

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:6 (6 by maintainers)

github_iconTop GitHub Comments

2reactions
jdsgomescommented, Feb 18, 2022

@oke-aditya I kicked off by renaming the ConvNormActivation as we all seem to be aligned. Looking forward to your contribution for step 2.

2reactions
jdsgomescommented, Feb 18, 2022

Thanks for the feedback @oke-aditya!

I was thinking and discussing with @datumbox offline, and I’m inclined to the following solution:

  1. Create an Alias for the existing ConvNormActivation and call it Conv2dNormActivation. (this will be done in a separate PR. I would also add a deprecation warning for the ConvNormActivation in this case.
  2. Create a new method for 3D convolutions named Conv3dNormActivation, which seems to be your preferred method too.

The advantages of this approach is that we have a clear naming convention in line with the nn.Conv2d and nn.Conv3d from pytorch, and we wouldn’t have to validate invalid combinations of norm_layer and the new conv_layer paramter in ConvNormActivation.

The major disadvantage is that the current ConvNormActivation is already used in 9 models inside TorchVision and numerous places externally but I think this can be mitigated with the deprecation warning and fazing out in future releases.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Pytorch: Step by Step implementation 3D Convolution Neural ...
In this article, we will be briefly explaining what a 3d CNN is, and how it is different from a generic 2d CNN....
Read more >
Spatio-Temporal FAST 3D Convolutions for Human Action ...
Each convolution block consist of three sequential convolution operations: a 2D spatial convolution followed by spatio-temporal convolutions ...
Read more >
Conv3d — PyTorch 1.13 documentation
Applies a 3D convolution over an input signal composed of several input planes. ... groups (int, optional) – Number of blocked connections from...
Read more >
3D Convolutions : Understanding + Use Case - Kaggle
Convolutional neural networks exploits the spatially-local correlation by enforcing a local connectivity pattern between neurons of adjacent layers. Intutively, ...
Read more >
ResNet 3D | Papers With Code
Summary ResNet 3D is a type of model for video that employs 3D convolutions. This model collection consists of two main variants.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found