MaxPool3d(return_indices=True) is completely messed up, both on CPU and GPU.
I mentioned this in a previous post, but it’s not clear to me that the problem is being addressed.
Here is an example:
pool3d = nn.MaxPool3d(kernel_size=2,stride=2,return_indices=True)
img3d = Variable(torch.rand(1,1,4,4,4))
out, indices = pool3d(img3d)
print(indices)
The output looks like this:
Variable containing:
(0 ,0 ,0 ,.,.) =
4.6117e+18 4.6117e+18
4.2950e+09 2.3224e+18
(0 ,0 ,1 ,.,.) =
4.2950e+09 4.2950e+09
-8.9845e+18 4.2950e+09
[torch.LongTensor of size 1x1x2x2x2]
The elements of indices
should be in the range [0,63]
, so this can’t be right.