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

TensorFlow와 Python으로 꽃 데이터셋 시각화하는 방법

꽃(flower) 데이터셋은 matplotlib 라이브러리를 활용하여 손쉽게 시각화할 수 있습니다. imshow 메서드를 사용하면 이미지를 콘솔 화면에 표시할 수 있으며, 데이터셋 전체를 순회(iteration)하면서 처음 몇 장의 이미지만 골라 출력하는 방식으로 시각화가 이루어집니다.

사용할 데이터셋 소개

이번 예제에서는 수천 장의 꽃 이미지를 포함하고 있는 꽃 데이터셋을 사용합니다. 이 데이터셋은 총 5개의 하위 디렉터리로 구성되어 있으며, 각 하위 디렉터리는 하나의 클래스(꽃 종류)에 해당합니다.

Google Colaboratory 환경

아래 코드는 Google Colaboratory(Colab)에서 실행됩니다. Google Colab은 브라우저에서 바로 Python 코드를 실행할 수 있도록 도와주는 도구로, 별도의 설정이 필요 없으며 GPU(그래픽 처리 장치)를 무료로 사용할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 만들어졌습니다.

코드 구현

import matplotlib.pyplot as plt

print("Visualizing the flower dataset")
plt.figure(figsize=(10, 10))
for images, labels in train_ds.take(1):
    for i in range(6):
        ax = plt.subplot(3, 3, i + 1)
        plt.imshow(images[i].numpy().astype("uint8"))
        plt.title(class_names[labels[i]])
        plt.axis("off")

print("Iterating over dataset")
print("Retrieving batches of images")
for image_batch, labels_batch in train_ds:
    print(image_batch.shape)
    print(labels_batch.shape)
    break

코드 출처: https://www.tensorflow.org/tutorials/load_data/images

실행 결과

Visualizing the flower dataset
Iterating over dataset
Retrieving batches of images
(32, 180, 180, 3)
(32,)

TensorFlow와 Python으로 꽃 데이터셋 시각화하는 방법

코드 설명

  • 데이터셋 시각화: matplotlib 라이브러리를 사용하여 꽃 데이터셋을 시각화합니다.
  • 이미지 출력: take(1)로 첫 번째 배치를 가져온 뒤, 그중 처음 6장의 이미지를 순회하며 3×3 격자 형태로 콘솔에 표시합니다. 각 이미지에는 해당하는 클래스 이름이 제목으로 달리고, 불필요한 축은 제거됩니다.
  • 배치 차원 확인: 이어서 데이터셋을 다시 한 번 순회하며 이미지 배치와 레이블 배치의 크기(shape)를 콘솔에 출력합니다.

출력 결과 해석

실행 결과를 보면 이미지 배치의 크기는 (32, 180, 180, 3)입니다. 이는 한 번의 배치에 32장의 이미지가 담겨 있고, 각 이미지는 180×180 픽셀 크기에 RGB 채널 3개로 구성되어 있음을 의미합니다. 레이블 배치의 크기는 (32,)로, 32장의 이미지 각각에 하나씩 레이블이 대응된다는 것을 알 수 있습니다.