imagedatagenerator flow 예제

ImageDataGenerator는 Keras에서 제공하는 이미지 데이터를 증강하기 위한 유용한 도구입니다. 이를 사용하면 이미지 데이터에 다양한 변형을 적용하여 데이터셋의 다양성을 높일 수 있습니다. 아래는 ImageDataGenerator의 flow 메서드를 사용하는 예제입니다.

import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGenerator

# 데이터 경로 설정
train_data_dir = 'train_data_directory'
validation_data_dir = 'validation_data_directory'

# 데이터 증강을 위한 ImageDataGenerator 객체 생성
datagen = ImageDataGenerator(
    rescale=1./255,       # 이미지 스케일 조정
    rotation_range=30,    # 이미지 회전
    width_shift_range=0.1,    # 가로 방향으로 이동
    height_shift_range=0.1,   # 세로 방향으로 이동
    shear_range=0.2,      # 이미지 왜곡
    zoom_range=0.2,       # 이미지 확대/축소
    horizontal_flip=True,    # 수평 방향으로 뒤집기
    vertical_flip=True    # 수직 방향으로 뒤집기
)

# 학습 데이터셋 가져오기
train_generator = datagen.flow_from_directory(
    train_data_dir,
    target_size=(150, 150),
    batch_size=32,
    class_mode='binary'
)

# 검증 데이터셋 가져오기
validation_generator = datagen.flow_from_directory(
    validation_data_dir,
    target_size=(150, 150),
    batch_size=32,
    class_mode='binary'
)

# 모델 생성 및 컴파일
model = tf.keras.models.Sequential(...)
model.compile(...)

# 모델 학습
model.fit(
    train_generator,
    steps_per_epoch=train_generator.samples // train_generator.batch_size,
    epochs=10,
    validation_data=validation_generator,
    validation_steps=validation_generator.samples // validation_generator.batch_size
)

위의 코드는 ImageDataGenerator를 사용하여 데이터 증강을 구현한 예제입니다. 주어진 디렉토리에서 이미지 데이터를 읽어와서 증강된 데이터를 생성하고, 이를 기반으로 학습 및 검증 데이터셋을 생성합니다. 마지막으로 모델을 생성하고 학습을 시작합니다.

ImageDataGenerator의 다양한 옵션을 사용하여 데이터를 증강하고, 생성된 데이터셋을 모델에 적용하여 성능을 향상시킬 수 있습니다. 이를 통해 더욱 풍부하고 다양한 데이터로 모델을 학습시킬 수 있게 됩니다.

#DeepLearning #ImageDataGenerator