kaiyuyue
(Kaiyu Yue)
May 11, 2018, 1:24pm
1
Hi, guys. When I put the conditional statement in forward
function, it will throw an error. Need some help. Thanks.
284 class Pooling(nn.Module):
285 r"""Pooling
286 """
287 def __init__(self):
288 super(Pooling, self).__init__()
289 self.fp1 = nn.FractionalMaxPool2d(kernel_size=3, output_size=(50, 80))
290 self.fp2 = nn.FractionalMaxPool2d(kernel_size=3, output_size=(80, 50))
291 self.fp3 = nn.FractionalMaxPool2d(kernel_size=3, output_size=(50, 50))
292
293 def forward(self, x):
294 B, C, H, W = x.size()
295
296 if H < W:
297 return self.fp1(x)
298 elif H > W:
299 return self.fp2(x)
300 else:
301 return self.fp3(x)
What does "it doesn’t work " means ? what is happening ? what is not happening as it should ?
kaiyuyue
(Kaiyu Yue)
May 11, 2018, 1:27pm
3
It will give a very strange error:
*** Error in `python3': free(): invalid pointer: 0x00007f7b9f101d40 ***
======= Backtrace: =========
/opt/compiler/gcc-4.8.2/lib/libc.so.6(+0x7354f)[0x7f7beaa6254f]
/opt/compiler/gcc-4.8.2/lib/libc.so.6(+0x78dbe)[0x7f7beaa67dbe]
/opt/compiler/gcc-4.8.2/lib/libc.so.6(+0x79a97)[0x7f7beaa68a97]
/home/yuekaiyu/python-3.5/lib/python3.5/site-packages/torch/_thnn/_THCUNN.cpython-35m-x86_64-linux-gnu.so(+0x65b80)[0x7f7a556fbb80]
python3(PyCFunction_Call+0x4c)[0x54d92c]
python3(PyEval_EvalFrameEx+0x41a)[0x4ea2da]
python3(PyEval_EvalCodeEx+0x123)[0x4f5a93]
python3[0x54c44f]
python3(PyObject_Call+0x3a)[0x45904a]
python3(PyEval_CallObjectWithKeywords+0x36)[0x4e9c56]
/home/yuekaiyu/python-3.5/lib/python3.5/site-packages/torch/_C.cpython-35m-x86_64-linux-gnu.so(_Z17THPFunction_applyP7_objectS0_+0x271)[0x7f7b9dc09ac1]
python3(PyCFunction_Call+0x4c)[0x54d92c]
python3(PyEval_EvalFrameEx+0x41a)[0x4ea2da]
python3(PyEval_EvalCodeEx+0x123)[0x4f5a93]
python3[0x54c657]
python3(PyObject_Call+0x3a)[0x45904a]
python3(PyEval_EvalFrameEx+0x25ab)[0x4ec46b]
python3(PyEval_EvalCodeEx+0x123)[0x4f5a93]
python3[0x54c3e3]
python3(PyObject_Call+0x3a)[0x45904a]
python3[0x545a6e]
python3(PyObject_Call+0x3a)[0x45904a]
python3[0x4ac25f]
python3(PyObject_Call+0x3a)[0x45904a]
python3(PyEval_EvalFrameEx+0x4866)[0x4ee726]
python3(PyEval_EvalCodeEx+0x123)[0x4f5a93]
python3[0x54c657]
python3(PyObject_Call+0x3a)[0x45904a]
python3(PyEval_EvalFrameEx+0x25ab)[0x4ec46b]
python3(PyEval_EvalCodeEx+0x123)[0x4f5a93]
python3[0x54c3e3]
python3(PyObject_Call+0x3a)[0x45904a]
python3[0x545a6e]
python3(PyObject_Call+0x3a)[0x45904a]
python3[0x4ac25f]
python3(PyObject_Call+0x3a)[0x45904a]
python3(PyEval_EvalFrameEx+0x4866)[0x4ee726]
python3(PyEval_EvalCodeEx+0x123)[0x4f5a93]
python3[0x54c657]
python3(PyObject_Call+0x3a)[0x45904a]
python3(PyEval_EvalFrameEx+0x25ab)[0x4ec46b]
python3(PyEval_EvalCodeEx+0x123)[0x4f5a93]
python3[0x54c3e3]
python3(PyObject_Call+0x3a)[0x45904a]
python3[0x545a6e]
python3(PyObject_Call+0x3a)[0x45904a]
python3[0x4ac25f]
python3(PyObject_Call+0x3a)[0x45904a]
python3(PyEval_EvalFrameEx+0x4866)[0x4ee726]
python3(PyEval_EvalCodeEx+0x123)[0x4f5a93]
python3[0x54c657]
python3(PyObject_Call+0x3a)[0x45904a]
python3(PyEval_EvalFrameEx+0x25ab)[0x4ec46b]
python3(PyEval_EvalCodeEx+0x123)[0x4f5a93]
python3[0x54c3e3]
python3(PyObject_Call+0x3a)[0x45904a]
python3[0x545a6e]
python3(PyObject_Call+0x3a)[0x45904a]
python3[0x4ac25f]
python3(PyObject_Call+0x3a)[0x45904a]
python3(PyEval_EvalFrameEx+0x4866)[0x4ee726]
python3(PyEval_EvalCodeEx+0x673)[0x4f5fe3]
python3[0x54c657]
======= Memory map: ========
00400000-0063e000 r-xp 00000000 08:08 50608171 /home/yuekaiyu/python-3.5/bin/python3.5
0083d000-008a1000 rw-p 0023d000 08:08 50608171 /home/yuekaiyu/python-3.5/bin/python3.5
008a1000-f4ef0000 rw-p 00000000 00:00 0 [heap]
200000000-200200000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
200200000-200400000 ---p 00000000 00:00 0
200400000-200404000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
200404000-200600000 ---p 00000000 00:00 0
200600000-200a00000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
200a00000-201800000 ---p 00000000 00:00 0
201800000-201804000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
201804000-201a00000 ---p 00000000 00:00 0
201a00000-201e00000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
201e00000-202c00000 ---p 00000000 00:00 0
202c00000-202c04000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
202c04000-202e00000 ---p 00000000 00:00 0
202e00000-203200000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
203200000-204000000 ---p 00000000 00:00 0
204000000-204004000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
204004000-204200000 ---p 00000000 00:00 0
204200000-204600000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
204600000-205400000 ---p 00000000 00:00 0
205400000-205404000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
205404000-205600000 ---p 00000000 00:00 0
205600000-205a00000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
205a00000-206800000 ---p 00000000 00:00 0
206800000-206804000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
206804000-206a00000 ---p 00000000 00:00 0
206a00000-206e00000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
206e00000-207c00000 ---p 00000000 00:00 0
207c00000-207c04000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
207c04000-207e00000 ---p 00000000 00:00 0
207e00000-208200000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
208200000-209000000 ---p 00000000 00:00 0
209000000-209004000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
209004000-209200000 ---p 00000000 00:00 0
209200000-209600000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
209600000-20a400000 ---p 00000000 00:00 0
20a400000-20a404000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
20a404000-20a600000 ---p 00000000 00:00 0
20a600000-20aa00000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
20aa00000-20aa04000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
20aa04000-20ac00000 ---p 00000000 00:00 0
20ac00000-20b000000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
20b000000-20b004000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
20b004000-20b200000 ---p 00000000 00:00 0
20b200000-20b600000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
20b600000-20b604000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
20b604000-20b800000 ---p 00000000 00:00 0
20b800000-20bc00000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
20bc00000-20bc04000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
20bc04000-20be00000 ---p 00000000 00:00 0
20be00000-20c200000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
20c200000-20c204000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
20c204000-20c400000 ---p 00000000 00:00 0
20c400000-20c800000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
20c800000-20c804000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
20c804000-20ca00000 ---p 00000000 00:00 0
20ca00000-20ce00000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
20ce00000-20ce04000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
20ce04000-20d000000 ---p 00000000 00:00 0
20d000000-20d400000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
20d400000-20d600000 ---p 00000000 00:00 0
20d600000-20d800000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
20d800000-20da00000 rw-s 00000000 00:0e 32186 /dev/nvidiactl
20da00000-300200000 ---p 00000000 00:00 0
318ee00000-318ef39000 r-xp 00000000 08:02 644547 /usr/lib64/libX11.so.6.3.0
318ef39000-318f139000 ---p 00139000 08:02 644547 /usr/lib64/libX11.so.6.3.0
318f139000-318f13f000 rw-p 00139000 08:02 644547 /usr/lib64/libX11.so.6.3.0
318fa00000-318fa02000 r-xp 00000000 08:02 644969 /usr/lib64/libXau.so.6.0.0
318fa02000-318fc02000 ---p 00002000 08:02 644969 /usr/lib64/libXau.so.6.0.0
318fc02000-318fc03000 rw-p 00002000 08:02 644969 /usr/lib64/libXau.so.6.0.0
3190200000-3190211000 r-xp 00000000 08:02 645300 /usr/lib64/libXext.so.6.4.0
3190211000-3190411000 ---p 00011000 08:02 645300 /usr/lib64/libXext.so.6.4.0
3190411000-3190412000 rw-p 00011000 08:02 645300 /usr/lib64/libXext.so.6.4.0
3191200000-3191209000 r-xp 00000000 08:02 644756 /usr/lib64/libXrender.so.1.3.0
3191209000-3191409000 ---p 00009000 08:02 644756 /usr/lib64/libXrender.so.1.3.0
3191409000-319140a000 rw-p 00009000 08:02 644756 /usr/lib64/libXrender.so.1.3.0
3197200000-3197207000 r-xp 00000000 08:02 644927 /usr/lib64/libSM.so.6.0.0
3197207000-3197407000 ---p 00007000 08:02 644927 /usr/lib64/libSM.so.6.0.0
3197407000-3197408000 rw-p 00007000 08:02 644927 /usr/lib64/libSM.so.6.0.0
3197600000-3197617000 r-xp 00000000 08:02 644725 /usr/lib64/libICE.so.6.3.0
3197617000-3197817000 ---p 00017000 08:02 644725 /usr/lib64/libICE.so.6.3.0
3197817000-3197818000 rw-p 00017000 08:02 644725 /usr/lib64/libICE.so.6.3.0
What version of pytorch do you use ?
kaiyuyue
(Kaiyu Yue)
May 11, 2018, 1:31pm
5
Python3.5 + PyTorch 0.3.1
try updating pytorch, I guess
kaiyuyue
(Kaiyu Yue)
May 11, 2018, 1:33pm
7
Okay, I will try. The code has no problem, right?
I don’t see any, can you print H W B C, if they are not null or if it doesn’t raise any error then there is no mistake.
kaiyuyue
(Kaiyu Yue)
May 11, 2018, 1:42pm
9
B, C, H, W = 1, 1024, 55, 50
, it seems x
is fine.
lelouedec
(Lelouedec)
May 11, 2018, 1:43pm
10
So yeah there is no mistake in your code.
There’s a bug in pip binaries for pytorch versions 0.3.1 and earlier that causes the invalid free you’re seeing. You can either install pytorch from conda or install pytorch 0.4.0 to fix the problem.
kaiyuyue
(Kaiyu Yue)
May 12, 2018, 2:39am
12
Thanks, @richard . It looks like nn.FractionalMaxPool2d
causes the error. nn.AdaptiveMaxPool2d
works fine.