Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

TensorFlow를 활용해 Python에서 Fashion MNIST 예측 결과 검증하기

TensorFlow는 Google이 제공하는 머신러닝 프레임워크입니다. 오픈소스 기반으로 Python과 함께 사용되어 다양한 알고리즘과 딥러닝 애플리케이션을 구현할 수 있으며, 연구 목적뿐 아니라 실제 프로덕션 환경에서도 널리 활용됩니다.

Windows 환경에서는 아래 명령어 한 줄로 'tensorflow' 패키지를 설치할 수 있습니다.

pip install tensorflow

Fashion MNIST 데이터셋이란?

'Fashion MNIST' 데이터셋은 다양한 종류의 의류 이미지를 담고 있는 데이터셋입니다. 총 10개 카테고리에 속하는 7만 장 이상의 흑백(grayscale) 의류 이미지로 구성되어 있으며, 각 이미지는 28 x 28 픽셀의 저해상도 형태입니다.

이 글에서는 Google Colaboratory(이하 Colab) 환경에서 코드를 실행합니다. Colab은 브라우저에서 바로 Python 코드를 실행할 수 있게 해주며, 별도의 설정이 필요 없고 GPU에 무료로 접근할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 만들어졌습니다.

다음은 Python에서 Fashion MNIST 모델의 예측 결과를 시각적으로 검증하는 코드입니다.

예제 코드

i = 0
plt.figure(figsize=(6,3))
plt.subplot(1,2,1)
plot_image(i, predictions[i], test_labels, test_images)
plt.subplot(1,2,2)
plot_value_array(i, predictions[i], test_labels)
plt.show()

i = 12
plt.figure(figsize=(6,3))
plt.subplot(1,2,1)
plot_image(i, predictions[i], test_labels, test_images)
plt.subplot(1,2,2)
plot_value_array(i, predictions[i], test_labels)
plt.show()

num_rows = 5
num_cols = 3
print("테스트 이미지, 예측 라벨, 실제 라벨을 함께 출력합니다")
print("올바른 예측은 초록색, 잘못된 예측은 빨간색으로 표시됩니다")
num_images = num_rows*num_cols
plt.figure(figsize=(2*2*num_cols, 2*num_rows))
for i in range(num_images):
  plt.subplot(num_rows, 2*num_cols, 2*i+1)
  plot_image(i, predictions[i], test_labels, test_images)
  plt.subplot(num_rows, 2*num_cols, 2*i+2)
  plot_value_array(i, predictions[i], test_labels)
plt.tight_layout()
plt.show()

코드 출처 − https://www.tensorflow.org/tutorials/keras/classification

실행 결과

TensorFlow를 활용해 Python에서 Fashion MNIST 예측 결과 검증하기

TensorFlow를 활용해 Python에서 Fashion MNIST 예측 결과 검증하기

TensorFlow를 활용해 Python에서 Fashion MNIST 예측 결과 검증하기

코드 설명

  • 모델 학습이 완료되면, 해당 모델을 활용해 새로운 이미지에 대한 예측을 수행할 수 있습니다.

  • 이미지 하나에 대해 예측을 진행하고, 그 결과로 생성된 예측 배열(prediction array)을 화면에 출력합니다.

  • 올바르게 예측된 라벨은 초록색으로, 잘못 예측된 라벨은 빨간색으로 표시되어 한눈에 구분할 수 있습니다.

  • 그래프에 표시된 숫자는 해당 라벨이 정답일 확률을 백분율(%) 값으로 나타낸 것입니다.

  • 즉, 모델이 예측한 라벨이 실제 이미지의 정답 라벨과 얼마나 일치하는지 그 신뢰도를 직관적으로 보여줍니다.