In [1]:
!pip install torch torchvision
Requirement already satisfied: torch in /usr/local/lib/python3.6/dist-packages (1.1.0)
Requirement already satisfied: torchvision in /usr/local/lib/python3.6/dist-packages (0.3.0)
Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from torch) (1.16.4)
Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from torchvision) (1.12.0)
Requirement already satisfied: pillow>=4.1.1 in /usr/local/lib/python3.6/dist-packages (from torchvision) (4.3.0)
Requirement already satisfied: olefile in /usr/local/lib/python3.6/dist-packages (from pillow>=4.1.1->torchvision) (0.46)

Convolutional Neural Network

컨볼루션 연산의 다양한 인자들을 바꿔보며 결과가 어떻게 달라지는지 알아보는 노트북입니다.

  • https://pytorch.org/docs/stable/nn.html?highlight=conv2d#torch.nn.Conv2d
  • in_channels: ÀÔ·ÂÀÇ Ã¤³Î ¼ö
  • out_channels: Ãâ·ÂÀÇ Ã¤³Î ¼ö
  • kernel_size: ÇÊÅÍ È¤Àº Ä¿³ÎÀÇ Å©±â
  • stride: ÇÊÅÍ Àû¿ëÀÇ °£°Ý (stride: °ÉÀ½°ÉÀÌ)
  • padding: ÀÔ·Â µ¥ÀÌÅ͸¦ Ãß°¡ÀûÀ¸·Î µÑ·¯½Î´Â ÃþÀÇ µÎ²²
  • dilation: Ã¥¿¡¼­ ´Ù·çÁö ¾Ê°í ³Ñ¾î°£ ³»¿ëÀÌ¶ó ¸µÅ©·Î ´ëüÇÕ´Ï´Ù. (https://laonple.blog.me/220991967450)
  • groups: ÀÔ·ÂÀ» ä³Î ´ÜÀ§·Î ¸î°³ÀÇ ºÐ¸®µÈ ±×·ìÀ¸·Î º¼ °ÍÀΰ¡
  • bias: ÆíÂ÷ÀÇ »ç¿ë¿©ºÎ
  • padding_mode: Æеù Àû¿ë ¹æ½Ä (ex. zero paddingÀº 0À¸·Î ä¿ì´Â °æ¿ì)

1. Settings

1) Import required libraries

In [0]:
import torch
import torch.nn as nn
import torchvision.datasets as dset
import torchvision.transforms as transforms
from torch.utils.data import DataLoader
import matplotlib.pyplot as plt

2. Data

1) Download Data

In [3]:
mnist_train = dset.MNIST("../", train=True, transform=transforms.ToTensor(), target_transform=None, download=True)
0it [00:00, ?it/s]
Downloading http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz to ../MNIST/raw/train-images-idx3-ubyte.gz
9920512it [00:05, 1861466.81it/s]                             
Extracting ../MNIST/raw/train-images-idx3-ubyte.gz
32768it [00:00, 460102.15it/s]
  2%|