Leacture: Deep Learning for everyone

Outline

  1. CNN
  2. RNN
  3. CrossEntropyLoss

CNN

Convolution

stride

padding

입력의 형태

Convolution code

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])

Pooling

Max Pooling

1
torch.nn.MaxPool2d(kernel_size, stride=None, padding=0 ...)

Average Pooling

Mnist CNN

딥러닝을 학습시키는 단계

  1. 라이브러리 가져오기
  2. GPU 사용설정
  3. 데이터셋을 가져오고 로더 만들기
  4. Parameter 결정
  5. 학습 모델 만들기
  6. Loss function & Optimizer
  7. Training
  8. Test model Performance

MNIST를 이용하여 만들 CNN 구조

CNN MNIST code

mnist

RNN

RNN의 다양한 구조

rnn3

one to many

many to one

many to many

many to many2

RNN Pytorch basics

1
2
rnn = torch.nn.RNN(input_size, hidden_size)
outputs, _status = rnn(input_data)

CrossEntropyLoss

1
2
3
criterion = torch.nn.CrossEntropyLoss()
...
loss = criterion(outputs.view(-1, input_size), Y.view(-1))