일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 이것이 코딩테스트다 with 파이썬
- 백준
- ssd
- test-helper
- CS231n
- 3단계
- C++
- 코드수행
- cs
- 머신러닝
- 딥러닝
- 모두를 위한 딥러닝 강좌 시즌1
- 자료구조 및 실습
- ubuntu
- Python
- STL
- 구현
- 1단계
- 실전알고리즘
- MySQL
- AWS
- Object detection
- pytorch
- 프로그래머스
- 전산기초
- docker
- SWEA
- 2단계
- 파이썬
- 그리디
- Today
- Total
곰퓨타의 SW 이야기
Lab 10-2 Mnist CNN 본문
부스트캠프 영상을 참고하였다 :)
www.boostcourse.org/ai214/lecture/43765/?isDesc=false
파이토치로 시작하는 딥러닝 기초
부스트코스 무료 강의
www.boostcourse.org
딥러닝을 학습시키는 단계
(code 기준)
1. 라이브러리 가져오기 (torch, torchvision, matplotlib 등)
2. GPU 사용 설정하고 random value를 위한 seed 설정하기
3. 학습에 사용되는 parameter 설정하기 (learning_rate, training_epochs, batch_sizes, etc)
4. 데이터셋을 가져오고 (학습에 쓰기 편하게) loader 만들기
5. 학습 모델 만들기(class CNN(torch.nn.Module))
6. Loss function(Criterion)을 선택하고 최적화 도구 선택하기
7. 모델 학습 및 loss check(Criterion의 output)
8. 학습된 모델의 성능을 확인한다.
우리가 만들 CNN 구조 확인
import torch
import torch.nn as nn
# MNIST size
inputs = torch.Tensor(1,1,28,28)
conv1 = nn.Conv2d(1,32,3,padding=1)
pool = nn.MaxPool2d(2)
>>pool
# MaxPool2d(kernel_size = 2, stride = 2, padding = 0, dilation = 1, ceil_mode = False)
conv2 = nn.Conv2d(32,64,3,padding = 1)
>> conv2
# Conv2d(32,64,kernel_size = (3,3), stride = (1,1), padding = (1,1))
out = conv1(inputs)
>> out.shape
# torch.Size([1,32,28,28])
out = pool(out)
>> out.shape
# torch.Size([1,32,14,14])
out = conv2(out)
>> out.shape
# torch.Size([1,64,14,14])
out = pool(out)
>> out.shape
# torch.Size([1,64,7,7])
# out의 (n)번째 자리의 값을 리턴해줌
out.size(0)
# 1
out.size(1)
# 64
out = out.view(out.size(), -1)
>> out.shape
# torch.Size([1,3136])
# input : 3136 output : 10
fc = nn.Linear(3136,10)
out = fc(out)
>> out.shape
torch.Size([1,10])
MNIST에 CNN 적용 코드를 함께 작성
강의에서도 나오지만, 부스트코스 github에도 너무 잘 나와있기 때문에 아래 주소가 많이 도움될 것이다 !!
github.com/deeplearningzerotoall/PyTorch/blob/master/lab-10_1_mnist_cnn.ipynb
deeplearningzerotoall/PyTorch
Deep Learning Zero to All - Pytorch. Contribute to deeplearningzerotoall/PyTorch development by creating an account on GitHub.
github.com
'인공지능 > 부스트코스_파이토치로 시작하는 딥러닝 기초' 카테고리의 다른 글
Lab 10-4-1 Image Folder1 (0) | 2021.03.10 |
---|---|
Lab 10-3 visdom (0) | 2021.03.10 |
Lab 10-1 Convolution (0) | 2021.02.27 |
파이토치로 시작하는 딥러닝 입문 관련 책!! (0) | 2021.02.26 |
Lab 09-4 Batch Normalization (0) | 2021.02.26 |