더북(TheBook)

앞서 MNIST 손글씨나 로이터 뉴스, 영화 리뷰의 예제들과는 다르게 케라스에서 제공하는 데이터를 불러오는 것이 아니라, 내 데이터를 읽어 오는 것이므로 새로운 함수가 필요합니다. 데이터의 수를 늘리는 ImageDataGenerator() 함수와 폴더에 저장된 데이터를 불러오는 flow_from_directory() 함수를 사용하겠습니다.

ImageDataGenerator() 함수는 주어진 데이터를 이용해 변형된 이미지를 만들어 학습셋에 포함시키는 편리한 기능을 제공합니다. 이미지 데이터의 수를 확장할 때 효과적으로 사용할 수 있습니다. 다음은 함수를 사용한 예입니다.

train_datagen = ImageDataGenerator(rescale=1./255,
                                   horizontal_flip=True,
                                   width_shift_range=0.1,
                                   height_shift_range=0.1,
                                   rotation_range=5,
                                   shear_range=0.7,
                                   zoom_range=1.2,
                                   vertical_flip=True,
                                   fill_mode='nearest')

각각 인자에 대한 설명은 다음과 같습니다(그림 20-2에도 정리되어 있습니다).

 

rescale: 주어진 이미지의 크기를 바꾸어 줍니다. 예를 들어 원본 영상이 0~255의 RGB값을 가지고 있으므로 255로 나누면 0~1의 값으로 변환되어 학습이 좀 더 빠르고 쉬워집니다. 앞서 배운 정규화 과정과 같습니다.

horizontal_flip, vertical_flip: 주어진 이미지를 수평 또는 수직으로 뒤집습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.