7.5.2 LSTM 셀 구현
지금까지 RNN을 살펴보았다면 이제 LSTM 셀과 LSTM 계층을 살펴보겠습니다. 이번 예제에서 사용할 데이터셋은 MNIST입니다.
Note ≡ | MNIST
MNIST는 인공지능 연구의 권위자 얀 르쿤(Yann LeCun) 교수가 만든 데이터셋으로 훈련 데이터셋 6만 개와 검증 데이터셋 1만 개로 구성되어 있습니다. MNIST는 손으로 쓴 숫자 이미지(0에서 9까지 값을 갖는 고정 크기 이미지(28×28 픽셀))들로 구성되어 있습니다.
먼저 필요한 라이브러리를 호출합니다.
코드 7-29 라이브러리 호출
import torch
import torch.nn as nn
import torchvision.transforms as transforms
import torchvision.datasets as dataset
from torch.autograd import Variable
from torch.nn import Parameter ------ 파라미터 목록을 갖고 있는 라이브러리(패키지)
from torch import Tensor
import torch.nn.functional as F
from torch.utils.data import DataLoader
import math ------ 수학과 관련되어 다양한 함수들과 상수들이 정의되어 있는 라이브러리
device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
cuda = True if torch.cuda.is_available() else False ------GPU 사용에 필요(GPU는 8장에서 자세히 살펴볼 예정이지만 미리 눈으로 익혀 두세요)
Tensor = torch.cuda.FloatTensor if cuda else torch.FloatTensor ------ GPU 사용에 필요
torch.manual_seed(125)
if torch.cuda.is_available():
torch.cuda.manual_seed_all(125)