Leacture: Deep Learning for everyone
이미지 위에서 stride값 만큼 filter를 이동시키면서 겹쳐지는 부분의 각 원소의 값을 곱해서 모두 더한 값을 출력으로 하는 연산이다.
(1x1) + (2x0) + (3x1) +
(0x0) + (1x1) + (5x0) +
(1x1) + (0x0) + (2x1) = 8
1
2
3
4
5
6
7
8
9
import torch
import torch.nn as nn
conv = nn.Conv2d(1,1,11,stride=4, padding=0) # Conv2d(input chanel, output chanel, filter size, stride, padding)
input = torch.Tensor(1,1,227,227)
out = conv(input)
out.shape
# output size: torch.Size([1, 1, 55, 55])
1
torch.nn.MaxPool2d(kernel_size, stride=None, padding=0 ...)
내부의 순환구조가 들어있으며 이를 이용하여 과거의 학습을 현재 학습에 반영한다.
1
2
rnn = torch.nn.RNN(input_size, hidden_size)
outputs, _status = rnn(input_data)
1
2
3
criterion = torch.nn.CrossEntropyLoss()
...
loss = criterion(outputs.view(-1, input_size), Y.view(-1))