이번에는 이미 학습된 매개변수를 사용하여 학습 과정을 생략하고, 추론 과정만 구현
이 추론 과정을 신경망의 순전파(forward propagation)이라고도 한다.
MINIST 데이터셋은 손글씨 숫자 이미지 집합으로, 기계학습 분야세어 유명한 데이터셋이다.
0부터 9까지의 숫자이미지로 구성되어있다. 훈련 이미지(train set)가 60000장, 시험 이미지(test set)은 10000장 준비되어 있다. 일반적으로 이 훈련 이미지들을 사용하여 모델을 학습하고, 학습한 모델로 시험 이미지들을 얼마나 정확하게 분류하는지를 평가한다.
import sys, os
sys.path.append("/Users/yujinju/Desktop/deeplearning_from_scratch-master")
from dataset.mnist import load_mnist
(x_train, t_train), (x_test, t_test) = \
load_mnist(flatten=True, normalize=False)
print(x_train.shape)
print(t_train.shape)
print(x_test.shape)
print(t_test.shape)
사실 여기서 os.pardir 부모 디렉토리를 못찾아서 나는 dataset이 들어있는 부모 경로의 절대경로를 넣어줬다. 그랬더니 너무 잘됨 해결방법 여기에도 적어두었으니 참고하시길
여기서 load_mnist함수는 읽은 MNIST 데이터를 "(훈련 이미지, 훈련 레이블), (시험 이미지, 시험 레이블)" 형식으로 반환한다. 인수로는 normalize, flatten, one_hot_label 세 가지를 설정할 수 있다. 세 인수는 모두 bool 값!
파이썬에는 pickle 이라는 편리한 기능이 있다. 이는 프로그램 실행 중에 특정 객체를 파일로 저장하는 기능이다. 저장해둔 pickle파일을 로드하면 해당 당시의 객체를 즉시 복원할 수 있다. MNIST 데이터셋을 읽는 load_mnist()함수에서도 (2번째 이후의 읽기 시) pickle 이용한다. pickle 덕분에 MNIST 데이터를 순식간에 준비할 수 있다.