Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Tensorflow는 성능을 위해 꽃 데이터 세트를 어떻게 구성할 수 있나요?

<시간/>

꽃 데이터 세트는 모델이 생성될 때 특정 비율의 정확도를 제공했을 것입니다. 성능을 위해 모델을 구성해야 하는 경우 버퍼 프리페치가 Rescaling 계층과 함께 사용됩니다. 이 레이어는 데이터 세트에서 Keras 모델을 사용하여 스케일링 레이어를 Keras 모델의 일부로 만들어 적용됩니다.

자세히 알아보기: TensorFlow란 무엇이며 Keras가 TensorFlow와 함께 신경망을 생성하는 방법은 무엇입니까?

수천 개의 꽃 이미지가 포함된 꽃 데이터 세트를 사용할 것입니다. 여기에는 5개의 하위 디렉터리가 포함되어 있으며 모든 클래스에 대해 하나의 하위 디렉터리가 있습니다.

Google Colaboratory를 사용하여 아래 코드를 실행하고 있습니다. Google Colab 또는 Colaboratory는 브라우저를 통해 Python 코드를 실행하는 데 도움이 되며 구성이 필요 없고 GPU(그래픽 처리 장치)에 대한 무료 액세스가 필요합니다. Colaboratory는 Jupyter Notebook을 기반으로 구축되었습니다.

AUTOTUNE = tf.data.AUTOTUNE

train_ds = train_ds.cache().prefetch(buffer_size=AUTOTUNE)
val_ds = val_ds.cache().prefetch(buffer_size=AUTOTUNE)

num_classes = 5
print("A sequential model is built")
model = tf.keras.Sequential([
   layers.experimental.preprocessing.Rescaling(1./255),
   layers.Conv2D(32, 3, activation='relu'),
   layers.MaxPooling2D(),
   layers.Conv2D(32, 3, activation='relu'),
   layers.MaxPooling2D(),
   layers.Conv2D(32, 3, activation='relu'),
   layers.MaxPooling2D(),
   layers.Flatten(),
   layers.Dense(128, activation='relu'),
   layers.Dense(num_classes)
])

코드 크레딧:https://www.tensorflow.org/tutorials/load_data/images

출력

A sequential model is built

설명

  • I/O 차단 없이 디스크에서 데이터를 얻을 수 있도록 버퍼링된 프리페치가 사용됩니다.
  • 데이터 로드 시 중요한 단계입니다.
  • '.cache()' 메서드는 첫 번째 에포크에서 디스크에서 로드된 이미지를 메모리에 유지하는 데 도움이 됩니다.
  • 이렇게 하면 모델을 훈련하는 동안 데이터세트가 방해가 되지 않습니다.
  • 데이터 세트가 너무 커서 메모리에 맞지 않는 경우 이 동일한 방법을 사용하여 고성능 디스크 캐시를 생성할 수 있습니다.
  • '.prefetch()' 메서드는 데이터가 훈련되는 동안 데이터 사전 처리 및 모델 실행 작업을 겹칩니다.