728x90
반응형

MINIST 데이터셋

  • 손글씨 숫자 이미지 조합
  • 간단한 실험부터 논문으로 발표되는 연구까지 다양한 곳에서 이용하고 있다.
  • 0부터 9까지의 이미지로 구성되어 있다.
  • 훈련 이미지가 60,000장 시험 이미지가 10,000장 준비되어 있다.
  • 훈련 이미지를 사용해 모델을 학습하고 학습한 모델로 시험 이미지들을 얼마나 정확하게 분류하는지를 평가한다.

 

dataset/mnist.py 파일 다운로드

그 후 같은 폴더에 넣을거면 dataset 코드 삭제

 

다운로드 경로

https://github.com/oreilly-japan/deep-learning-from-scratch

 

oreilly-japan/deep-learning-from-scratch

『ゼロから作る Deep Learning』(O'Reilly Japan, 2016). Contribute to oreilly-japan/deep-learning-from-scratch development by creating an account on GitHub.

github.com

 

 

파이썬 코드

# 손글씨 숫자 인식
# MNIST 데이터셋 사용 - 손글씨 숫자 이미지 집합 기계학습 분야에서 아주 유명한 데이터셋


import sys, os 
sys.path.append(os.pardir) #부모 디렉터리의 파일을 가져올 수 있도록 설정
from mnist import load_mnist

# 몇 분 정도 걸림
(x_train, t_train), (x_test, t_test) = load_mnist(flatten = True, normalize = False) 

# 각 데이터 형상 출력
print("x_train.shape(행렬)",x_train.shape)
print("t_train.shape(행렬)",t_train.shape)
print("x_test.shape",x_test.shape)
print("t_test.shape",t_test.shape)

[그림1] 손글씨 숫자 인식 실행 결과

normalize

  • normalize는 입력 이미지의 픽셀값을 0.0~ 1.0 사이의 값으로 정규화할지를 정한다. False로 설정하면 입력 이미지의 픽셀은 원래 값 글대로 0~255 사이의 값을 유지한다. 

 

 

flatten

  • flatten은 입력 이미지를 평탄하게 - 1차원 배열로 만들지를 정한다. False로 설정하면 입력 이미지를 1*28*28의 3차원 배열로, True로 설정하면 784개의 원소로 이뤄진 1차원 배열로 저장한다.

 

one_hot_label은 레이블을 원-핫 인코딩 형태로 저장할지를 정한다.

원-핫 인코딩

  • [0,0,1,0,0,0,0,0,0,0,0]처럼 정답을 뜻하는 원소만 1이고(hot) 나머지는 모두 0인 배열이다. 
  • one_hot_label이 False면 '7'이나 '2'와 같이 숫자 형태의 레이블을 저장하고 True일 때는 레이블을 원-핫 인코딩 해서 저장한다.

 

MNIST 이미지 불러오기

 

 

import sys, os
sys.path.append(os.pardir) # 부모 디렉토리의 파일을 가져올 수 있도록 설정
import numpy as np
from mnist import load_mnist
from PIL import Image

def img_show(img):
    pil_img = Image.fromarray(np.uint8(img))
    pil_img.show()
    
(x_train, t_train),(x_trst, t_test) = load_mnist(flatten=True, normalize=False)

img = x_train[0]
label = t_train[0]
print("label : ",label)

print(img.shape)
img = img.reshape(28,28) # 원래 이미지의 모양으로 변형
print(img.shape)

img_show(img)

[그림2] 이미지 불러오기 실행 결과 출력
[그림3] MNIST 이미지 중 하나.

 

 

 

출처 : 밑바닥부터 시작하는 딥러닝

https://www.hanbit.co.kr/store/books/look.php?p_code=B8475831198

 

밑바닥부터 시작하는 딥러닝

직접 구현하고 움직여보며 익히는 가장 쉬운 딥러닝 입문서

www.hanbit.co.kr

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기