import torch
import torch.nn as nn
from torch.autograd import Variable
m = Variable(torch.randn(3, 10, 20))
nn.Conv2d(in_channels=3, out_channels=8, kernel_size=3)(m)
Traceback (most recent call last):
File "too.py", line 6, in <module>
nn.Conv2d(in_channels=3, out_channels=8, kernel_size=3)(m)
File "/home/soumith/code/pytorch/torch/nn/modules/module.py", line 206, in __call__
result = self.forward(*input, **kwargs)
File "/home/soumith/code/pytorch/torch/nn/modules/conv.py", line 237, in forward
self.padding, self.dilation, self.groups)
File "/home/soumith/code/pytorch/torch/nn/functional.py", line 43, in conv2d
return f(input, weight, bias)
RuntimeError: expected 3D tensor
baru saja mengalami masalah serupa menggunakan data dengan bentuk (ukuran_batch, tinggi, berat), menambahkan 1 dimensi pada posisi 1 dan masalah diurutkan. PS. Saya menggunakan in_channels = 1.
Kesalahan terjadi karena panggilan ke view4d
di torch/csrc/autograd/functions/convolution.cpp
mengharapkan tensor bobot juga 3D.
Namun, input (3D) akan dikonversi ke tensor 4D dengan bentuk (3, 10, 1, 20), meskipun kita tidak mencoba melepaskan tensor bobot, ukurannya akan tidak cocok.
Mungkin kita harus menambahkan tanda centang di level Python (dalam nn.functional.conv2d
) untuk menaikkan jika input.dim() != 4
?
@soumith jika Anda senang dengan ini, saya dapat mengirim PR
Ya! sangat senang dengan ini. kirim PR :)
Komentar yang paling membantu
Ya! sangat senang dengan ini. kirim PR :)