더북(TheBook)

(x_train, y_train), (x_test, y_test) = mnist.load_data()

mnistload_data 명령어를 사용하여 데이터를 불러옵니다. 케라스에서 제공하는 mnist 데이터셋은 크게 네 부분으로 나누어져 있습니다. 네 부분을 불러와서 각 변수에 저장하는 명령어입니다.

첫 번째 부분과 두 번째 부분은 훈련 데이터입니다. 이 훈련 데이터는 픽셀값으로 이루어진 이미지 데이터와 그 이미지 데이터가 나타내는 숫자가 무엇인지를 알려주는 데이터 이렇게 두 부분으로 나뉘어 있습니다.

세 번째 부분과 네 번째 부분은 검증 데이터입니다. 이 검증 데이터 또한 크게 이미지 데이터와 이미지 데이터가 나타내는 숫자가 무엇인지 알려주는 데이터로 나뉩니다.

x_test = (x_test.astype(np.float32) - 127.5)/127.5

우리는 10,000개로 구성된 x_test 데이터를 사용할 예정입니다. 나머지는 어떻게 하냐고요? 나머지는 사용하지 않을 예정입니다.

이제 이 데이터를 사용하기 위해 먼저 정규화를 하겠습니다. 물론 앞장에서 사용한 사이킷런 라이브러리의 정규화 함수(MinMaxScaler)를 사용해도 되지만, 이번에는 직접 해보도록 하겠습니다.

그 데이터의 세부 값을 –1~1 사이의 값으로 나타내기 위해, 먼저 나눌 수 있는 실수 값으로 데이터를 변경합니다(x_test.astype(np.float32)). 다음으로 데이터를 –1~1 사이의 값으로 변경합니다. mnist 데이터셋의 그림은 0~255까지의 숫자로 이루어져 있는데, 그 중간 값인 127.5를 뺀 후 다시 127.5로 나누면((x_test.astype(np.float32) - 127.5)/127.5) 0은 -1로, 255는 1로 값이 바뀌며, 그 중간 값 또한 비율에 따라 축소됩니다. 그리고 이렇게 변경된 값을 x_test로 저장합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.