Run the following code will raise "RuntimeError: Can only downcast contiguous tensors"
only happens in cuda mode, works for conv2d, works for cpu mod.
Tested on 0.2.0 and 0.3.0
Python 2.7,
Linux version 3.10.0-693.2.1.el7.x86_64 (mockbuild@x86-030.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) )
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
from torch.autograd import Variable
import numpy as np
corr = Variable(torch.FloatTensor(np.ones((128,5,7,7))))
f = Variable(torch.FloatTensor(np.ones((8,5,3,3))))
out = F.conv2d(corr,f)
print('conv',out.size())
out = out.view((128,8,1,5,5)).permute(0,2,1,3,4).contiguous()
x,i = F.max_pool3d(out,(8,1,1),stride=(8,1,1),return_indices=True)
print('conv out',out.size())
corr = Variable(torch.FloatTensor(np.ones((128,5,3,3)))).cuda()
f = Variable(torch.FloatTensor(np.ones((5,8,3,3)))).cuda()
out = F.conv_transpose2d(corr,f)
print('deconv',out.size())
out = out.view((128,8,1,5,5)).permute(0,2,1,3,4).contiguous()
x,i = F.max_pool3d(out,(8,1,1),stride=(8,1,1),return_indices=True)
print('deconv out',out.size())
Traceback (most recent call last):
File "cont_test.py", line 26, in
x,i = F.max_pool3d(out,(8,1,1),stride=(8,1,1),return_indices=True)
File "/usr/lib64/python2.7/site-packages/torch/nn/functional.py", line 293, in max_pool3d
ceil_mode)
File "/usr/lib64/python2.7/site-packages/torch/nn/_functions/thnn/pooling.py", line 163, in forward
ctx.ceil_mode)
RuntimeError: Can only downcast contiguous tensors at /pytorch/torch/lib/tmp_install/include/THC/THCDeviceTensor-inl.cuh:295
Run the following code will raise "RuntimeError: Can only downcast contiguous tensors"
only happens in cuda mode, works for conv2d, works for cpu mod.
Tested on 0.2.0 and 0.3.0
Python 2.7,
Linux version 3.10.0-693.2.1.el7.x86_64 (mockbuild@x86-030.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) )
0.2
0.3