ImageDataGenerator란,
모델안에 이미지를 학습시킬 때, 그 학습량이 적을 경우 가지고 있는 학습데이터를 조금씩 변형시켜서
학습데이터를 늘려가는 방식이다
쉽게말해 '이미지 증강(증식)'이라고 생각하면 되겠다
예를들어 아래와 같은 강아지 사진이 있다
머신러닝 학습을 위해선 학습량에 따라 예측값이 달라지는데 위 사진 한장만 달랑 가지고 있으면
컴퓨터가 학습할 데이터가 턱없이 부족하지 않은가
이렇게 부족한 데이터 학습을 컴퓨터가 스스로 변형시켜서 학습량을 늘려가도록 해주는 것이다
위처럼 기존에 가지고 있던 사진을 반전시키거나, 크롭, 회전 등 다양하게 변형시켜 학습데이터를 스스로 만들어내도록
코드를 입력해주는 것이다
from tensorflow.keras.preprocessing.image import ImageDataGenerator
TRAINING_DIR = '/tmp.cats-v-dogs/training'
train_datagen = ImageDataGenerator(
rescale = 1/255.0, # 값을 0과 1사이로 변환
rotation_range = 40, # 회전반경을 40도 이내로 설정
width_shift_range = 0.2, # 너비반경 20%
height_shift_range = 0.2, # 높이반경 20%
shear_range = 0.2, # 층 밀림 강도 20%
zoom_range = 0.2, # 확대 범위 20%
hotizontal_flip = True, # 수평반전
vertical_flip = True, # 수직반전
fill_mode ='nearest'
)
각 파라미터별 설명은 주석으로 처리해놓았다
이밖에도 다양한 파라미터가 존재하지만, 그건 하단에 삽입한 링크를 참고하셔라
https://keras.io/api/preprocessing/image/
Keras documentation: Image data preprocessing
Image data preprocessing image_dataset_from_directory function tf.keras.preprocessing.image_dataset_from_directory( directory, labels="inferred", label_mode="int", class_names=None, color_mode="rgb", batch_size=32, image_size=(256, 256), shuffle=True, seed
keras.io
'& 프로그래밍 > & 머신러닝' 카테고리의 다른 글
자주 사용하는 파이썬 라이브러리 모음 (0) | 2021.03.05 |
---|---|
Facebook이 개발한 오픈소스 Prophet 라이브러리 사용하기 (0) | 2021.03.03 |
Callback 함수 활용하기 (0) | 2021.03.02 |
Categorical Data Encoding(데이터 전처리 작업) (0) | 2021.03.02 |
이미지 학습 테스트 코드 (0) | 2021.03.02 |