더북(TheBook)

X_test에도 마찬가지로 이 작업을 적용합니다. 다음과 같이 한 번에 적용시키겠습니다.

X_test = X_test.reshape(X_test.shape[0], 784).astype('float64') / 255

이제 숫자 이미지에 매겨진 이름을 확인해 보겠습니다. 우리는 앞서 불러온 숫자 이미지가 5라는 것을 눈으로 보아 짐작할 수 있습니다. 실제로 이 숫자의 레이블이 어떤지 불러오고자 y_train[0]을 다음과 같이 출력해 보겠습니다.

print("class : %d " % (y_train[0]))

그러면 이 숫자의 레이블 값인 5가 출력되는 것을 볼 수 있습니다.

 

실행 결과

class : 5

그런데 12장에서 아이리스 품종을 예측할 때 딥러닝의 분류 문제를 해결하려면 원-핫 인코딩 방식을 적용해야 한다고 배웠습니다(원‐핫 인코딩 참조). 즉, 0~9의 정수형 값을 갖는 현재 형태에서 0 또는 1로만 이루어진 벡터로 값을 수정해야 합니다.

지금 우리가 열어 본 이미지의 클래스는 [5]였습니다. 이를 [0,0,0,0,0,1,0,0,0,0]으로 바꾸어야 합니다. 이를 가능하게 해 주는 함수가 바로 np_utils.to_categorical() 함수입니다. to_categorical(클래스, 클래스의 개수) 형식으로 지정합니다.

y_train = to_categorical(y_train, 10)
y_test = to_categorical(y_test, 10)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.