더북(TheBook)

X_test = x_test.reshape(10000, 784)

이 명령어 또한 28×28 형태인 x_test 데이터를 1×784로 바꾸는 명령어입니다. (10000, 28, 28) → (10000, 784)로 데이터의 형태가 바뀝니다.

X_train = X_train.astype('float32')

이제부터는 정규화하기 위해 데이터를 0~1 사이의 값으로 바꿔 주려고 합니다. 이 값들은 모두 실수값인데 지금 가진 X_train 데이터는 정수형이기 때문에 자료형을 바꿔 주어야 합니다. 이를 위해 X_train 데이터의 형태를 실수 형태로 바꾸고 그 데이터를 다시 X_train 변수에 넣습니다.

TIP

정규화하는 이유는 데이터의 특성을 더 잘 드러나도록 하기 위해서입니다. 이렇게 정규화하면 정규화하지 않은 데이터보다 학습이 잘 이루어질 수 있습니다.

X_test = X_test.astype('float32')

X_test 데이터 또한 정규화하기 때문에 자료형을 실수 형태로 바꿔 줍니다. 그리고 바꿔 준 데이터를 다시 X_test 변수에 넣습니다.

X_train /= 255

앞에서 mnist 데이터의 각 형태를 살펴봤듯이 검은색은 0, 흰색은 255, 회색은 1~254 사이의 값으로 이루어져 있습니다. 이를 0~1 사이의 값으로 바꾸는 방법은 바로 255로 나누는 것입니다. X_train의 각 데이터를 255로 나눈 값을 다시 X_train에 저장하는 코드입니다. 프로그래밍에서 나누기 기호는 /입니다.

X_test /= 255

X_test의 각 데이터를 255로 나눈 값을 다시 X_test에 저장하는 코드입니다.

print("X Training matrix shape", X_train.shape)

X_train 데이터의 바뀐 형태를 출력해 봅시다. 출력 결괏값은 (60000, 784)입니다.

print("X Testing matrix shape ", X_test.shape)

X_test 데이터의 바뀐 형태를 출력해 봅시다. 출력 결괏값은 (10000, 784)입니다.

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