안녕하세요. 언제나휴일입니다.
머신러닝이나 딥러닝에서 손글씨 인식에 관한 예를 많이 사용합니다.
이 때 직접 손글씨 데이터를 만들어 사용하는 것은 번잡한 일이라서 제공하는 mnist 파일을 다운로드 받아 사용하곤 합니다.
그런데 mnist 파일의 구조가 어떠한 구조인지 정확한 설명이 없거나 있다고 하더라도 직접 확인하고 싶은 욕구가 생길 수 있을 거예요.
이번에는 mnist 파일을 다운로드 받고 구조를 확인하는 소스 코드를 작성해 볼게요.
참고로 mnist 파일에는 60000개의 손글씨 이미지가 있고 이미지 하나당 28X28개의 픽셀로 이루어져 있습니다.
물론, 각 이미지가 어떠한 수인지 Label값도 60000개 있겠죠.
다음은 이를 확인하기 위한 코드입니다. 동영상을 참고하세요.
#mnist 다운로드 및 분석 import numpy as np from keras import datasets data_train,data_test = datasets.mnist.load_data() image_train, label_train = data_train image_test, label_test = data_test print("image_train의 구조:",image_train.shape) print("label_train의 구조:",label_train.shape) print("image_test의 구조:",image_test.shape) print("label_test의 구조:",label_test.shape) colcnt = len(image_train[0]) rowcnt = len(image_train[0][0]) for r in range(rowcnt): for c in range(colcnt): if(image_train[0][r][c] != 0): print("ㅁ",end=' ') else: print(" ",end=' ') print() print(label_train[0])
실행 결과