torchsparse icon indicating copy to clipboard operation
torchsparse copied to clipboard

Stride of TorchSparse Conv3d is no effect?

Open haiduo opened this issue 1 year ago • 2 comments

Hello, I have a problem about Stride of TorchSparse Conv3d. Through experiments, I verify that stride(2) does not have scale influence on the output coordinates. In other words, STRIDE does not work in TrochSparse. For example, spnn.Conv3d(32, 64, 2, stride=2) image look image In addition, it is not the correct coordinate range output of subsample even set the k2s2. As mentioned before Conv3d with kernel_size=1 and stride=2 doesn't subsample the input tensor and Why not constraining the max coordinates during downsampling? So, at the moment, I suspect that stride > 1 for spnnConv3d is not valid.

haiduo avatar Sep 08 '22 08:09 haiduo

Hi @haiduo,

In our implementation actually stride > 1 changes the resolution of the coordinates, instead of the scale of the coordinates. After n downsampling layers, all the coordinates will be a multiple of $2^n$. Note that this is equivalent to reducing the coordinate range by 2x at each downsampling layer.

Best, Haotian

kentang-mit avatar Sep 26 '22 04:09 kentang-mit

Hi @haiduo,

In our implementation actually stride > 1 changes the resolution of the coordinates, instead of the scale of the coordinates. After n downsampling layers, all the coordinates will be a multiple of 2n. Note that this is equivalent to reducing the coordinate range by 2x at each downsampling layer.

Best, Haotian

Thank you for your reply! I know mean what you said. Maybe I used an error word about "scale", but I want to say means what you said. That is stride > 1 changes the resolution of the coordinates, but I found is not correct about the output resolution of coordinates through experiments. Specifically, I should use TorchSparse to replace the 3DConv layer of VoxelNet. After two times of downsampling (stride=2), it was found that the coordinate resolution did not reduce the corresponding multiple. Because there needs to be a Voxel2dense operation (for example, Torch. sparse_COO_tensor) for subsequent RPN processing. But I found that the resolution of the generated Dense tensor was not downsampled relative to the input coordinates. I don't know if I made myself clear. Finally, thank you again for your reply.

haiduo avatar Sep 26 '22 04:09 haiduo

Since TorchSparse has been upgraded to v2.1.0, could you please attempt to install the latest version? I will now close this issue, but please don't hesitate to reopen it if the problem persists.

zhijian-liu avatar Jul 15 '23 01:07 zhijian-liu