오답노트
[keras] ImageDataGenerator 본문
https://keras.io/ko/preprocessing/image/
ImageDataGenerator
ImageDataGenerator는 케라스에서 지원하는 객체로 따로 이미지를 담을 변수를 만들 필요 없이 손쉽게 이미지를 불러오고 옵션을 통해 이미지 증강으로 기존 이미지 데이터에서 왜곡된 데이터로 더 많은 경우의 이미지 데이터를 얻을 수 있다.
train_datagen = ImageDataGenerator(
rescale=1. / 255,
validation_split=0.2,
rotation_range = 10,
width_shift_range=0.1,
height_shift_range=0.1
)
- rescale : 이미지 스케일링을 지정한다.
- validation_split : ImageDataGenerator으로 데이터를 만들때 subset 옵션으로 train과 validation으로 나눌 때 비율을 설정할 수 있다.
- rotation_range : 이미지를 회전 시킬 범위를 설정한다. 범위는 각도이다.
- width_shift_range : 이미지가 좌우로 움직일 비율을 설정합니다.
- height_shift_range : 이미지가 상하로 움직일 비율을 설정합니다.
flow_from_directory
# train_genrator 생성
train_generator = train_datagen.flow_from_directory(
TRAIN_PATH,
batch_size = 32,
target_size=(34, 180),
color_mode='grayscale',
class_mode = 'categorical',
subset = 'training'
)
# validation_generator 생성
validation_generator = train_datagen.flow_from_directory(
TRAIN_PATH,
batch_size= 32,
target_size=(34, 180),
color_mode='grayscale',
class_mode = 'categorical',
subset = 'validation'
)
flow_from_directory 함수는 디렉토리에서 이미지를 불러와 옵션에 맞게 이미지를 만들어내는 함수이다.
- directory : 이미지가 저장된 경로
- batch_size : 데이터 배치 사이즈 (기본 32)
- target_size : 함수가 반환할 이미지 사이즈의 크기를 재조정할 치수를 튜플로 입력
- color_mode : 함수가 반환할 이미지의 채널수를 설정한다. ("grayscale", "rgb", "rgba" 기본은 rgb)
- class_mode : 함수가 반환될 라벨 배열의 종류를 결정한다. ("categorical", "binary", "sparse", "input", None 기본은 categorical)
- categorical : multi class에서 사용가능한 2차원 배열
- binary : 두 개의 class에서 사용가능한 1차원 배열
- input : 원본 이미지와 동일한 이미지, 주로 자동 인코더와 함께 사용된다.
- None : 어떠한 라벨도 생성하지 않는다.
- subset : ImageDataGenerator에 validation_split이 설정되어 있을 때, 데이터의 종류를 설정할 수 있다. (training, validation)
사용 예제
model.fit(
train_generator, # <<<
epochs=20,verbose=1,
callbacks=[early_stopping],
validation_data=validation_generator, # <<<
# validation_steps=50
)
pred_val = model.predict(validation_generator)
'Python > DL' 카테고리의 다른 글
[MeCab] 형태소 분석 (0) | 2022.10.03 |
---|---|
[NLP] 형태소 분석과 품사 태깅 (1) | 2022.10.03 |
[YOLO] Object Detection From Pretrained Model (0) | 2022.09.22 |
[YOLO] YOLO(You Only Look Once) - Object Detection (2) | 2022.09.21 |
[Keras] CNN 관련 레이어 - Conv2D, MaxPool2D (2) | 2022.09.21 |