Pytorch: Conv2d์— 3D ์ž…๋ ฅ์„ ์ œ๊ณตํ•˜๋ฉด ์ž˜๋ชป๋œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 05์›” 21์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: pytorch/pytorch

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
medium priority (this tag is deprecated)

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋„ค! ์ด๊ฒƒ์— ๋งค์šฐ ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค. PR์„ ๋ณด๋‚ด์ฃผ์„ธ์š” :)

๋ชจ๋“  3 ๋Œ“๊ธ€

๋ชจ์–‘(batch_size, height, weight)์ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ ์‚ฌํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์œ„์น˜ 1์— 1์ฐจ์›์ด ์ถ”๊ฐ€๋˜๊ณ  ๋ฌธ์ œ๊ฐ€ ์ •๋ ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ถ”์‹ . ๋‚˜๋Š” in_channels = 1์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

torch/csrc/autograd/functions/convolution.cpp ์˜ view4d ํ˜ธ์ถœ์ด ๊ฐ€์ค‘์น˜ ํ…์„œ๋„ 3D์ผ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ (3D) ์ž…๋ ฅ์€ (3, 10, 1, 20) ๋ชจ์–‘์˜ 4D ํ…์„œ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์ค‘์น˜ ํ…์„œ๋ฅผ ํ’€๋ ค๊ณ  ํ•˜์ง€ ์•Š๋”๋ผ๋„ ํฌ๊ธฐ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ์šฐ๋ฆฌ๋Š” if input.dim() != 4 ๋ฅผ ์˜ฌ๋ฆฌ๊ธฐ ์œ„ํ•ด Python ์ˆ˜์ค€( nn.functional.conv2d )์—์„œ ๊ฒ€์‚ฌ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

@soumith ๋งŒ์กฑํ•˜์‹œ๋ฉด PR ๋ณด๋‚ด๋“œ๋ฆด๊ฒŒ์š”

๋„ค! ์ด๊ฒƒ์— ๋งค์šฐ ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค. PR์„ ๋ณด๋‚ด์ฃผ์„ธ์š” :)

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰