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
ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π°Π½Π½ΡΠ΅ Ρ ΡΠΎΡΠΌΠΎΠΉ (ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΡΡΠΈΠΈ, Π²ΡΡΠΎΡΠ°, Π²Π΅Ρ), Π΄ΠΎΠ±Π°Π²ΠΈΠ» 1 ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ·ΠΈΡΠΈΡ 1 ΠΈ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π» ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. PS. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ in_channels = 1.
ΠΡΠΈΠ±ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²ΡΠ·ΠΎΠ² view4d
Π² torch/csrc/autograd/functions/convolution.cpp
ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ Π²Π΅ΡΠΎΠ²ΠΎΠΉ ΡΠ΅Π½Π·ΠΎΡ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΡΡΠ΅Ρ
ΠΌΠ΅ΡΠ½ΡΠΌ.
ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΎΠ΄ (3D) Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ Π² ΡΠ΅Π½Π·ΠΎΡ 4D Ρ ΡΠΎΡΠΌΠΎΠΉ (3, 10, 1, 20), Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π΅ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ ΡΠ°Π·ΠΆΠ°ΡΡ ΡΠ΅Π½Π·ΠΎΡ Π²Π΅ΡΠ°, ΡΠ°Π·ΠΌΠ΅ΡΡ Π±ΡΠ΄ΡΡ Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΌ ΡΡΠΎΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ Python (Π² nn.functional.conv2d
) Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ if input.dim() != 4
?
@soumith , Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΡΡΠΎ Π½ΡΠ°Π²ΠΈΡΡΡ, Ρ ΠΌΠΎΠ³Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ PR
Π΄Π°! ΠΎΡΠ΅Π½Ρ Π΄ΠΎΠ²ΠΎΠ»Π΅Π½ ΡΡΠΈΠΌ. ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΠΈΠ°Ρ :)
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π΄Π°! ΠΎΡΠ΅Π½Ρ Π΄ΠΎΠ²ΠΎΠ»Π΅Π½ ΡΡΠΈΠΌ. ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΠΈΠ°Ρ :)