[How to] 3D Convs with batch size = 1, Inverse 3D Convs with batch size = N
simo23 opened this issue · 0 comments
simo23 commented
Hi,
I have a script that does:
- Feature extraction of a pointcloud using an spconv-based UNet
- Downsamples the features using a series of 3D convolutions
- Converts the spconv tensor into a torch tensor
- Replicates the tensor N times (simulating batch size = N)
- Updates the N-replicated tensor with other torch modules
- Converts the N-replicated tensor into spconv tensor
- Upsamples the updated N-replicated tensor to original resolution with a series of inverse convolutions (inverse of step 2)
I have the same indices in step 2 and 7, the difference is that in step 7 they are replicated N times. Now spconv throws an error and does not allow to do this in a naive way. I also tried to replicate the internal ImplicitGemmIndiceData used by the convolution without luck, by replicating the indices and setting the proper batch idx.
A workaround is to do a for loop over the N elements but its not optimal. Is there a nice way to do it?
Thank you