-
Notifications
You must be signed in to change notification settings - Fork 25.7k
Description
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())
0.2
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
0.3
*** Error in `python': free(): invalid pointer: 0x00007f871fc575a0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x7c619)[0x7f8756d04619]
/home/zhihaozh/torch_proj/polar/repo/polar_net/lib/python2.7/site-packages/torch/_thnn/_THCUNN.so(+0xca1f2)[0x7f866431e1f2]
/lib64/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6df0)[0x7f8757a54bb0]
/lib64/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7ed)[0x7f8757a56efd]
/lib64/libpython2.7.so.1.0(+0x70858)[0x7f87579e0858]
/lib64/libpython2.7.so.1.0(PyObject_Call+0x43)[0x7f87579bb9a3]
/lib64/libpython2.7.so.1.0(PyEval_CallObjectWithKeywords+0x47)[0x7f8757a4d7b7]