더북(TheBook)

AlexNet은 파라미터를 6000만 개 사용하는데, 이때 충분한 데이터가 없으면 과적합이 발생합니다. 하지만 예제는 충분한 규모의 데이터가 아니므로 작은 데이터셋을 사용하여 강력한 성능을 낼 수 있는 전처리가 필요합니다.

여기에서는 앞서 사용했던 ImageDataGenerator를 사용합니다.

코드 6-11 데이터 호출 및 데이터셋 전처리(증가)

EPOCHS = 100
BATCH_SIZE = 32
image_height = 100
image_width = 100
train_dir = "../chap6/data/catanddog/train/"
valid_dir = "../chap6/data/catanddog/validation/"

train = ImageDataGenerator(
                rescale=1./255,
                rotation_range=10,
                width_shift_range=0.1,
                height_shift_range=0.1,
                shear_range=0.1,
                zoom_range=0.1)

train_generator = train.flow_from_directory(train_dir,
                                            target_size=(image_height, image_width),
                                            color_mode="rgb",
                                            batch_size=BATCH_SIZE,
                                            seed=1,
                                            shuffle=True,
                                            class_mode="categorical")

valid = ImageDataGenerator(rescale=1.0/255.0)
valid_generator = valid.flow_from_directory(valid_dir,
                                            target_size=(image_height, image_width),
                                            color_mode="rgb",
                                            batch_size=BATCH_SIZE,
                                            seed=7,
                                            shuffle=True,
                                            class_mode="categorical")
train_num = train_generator.samples
valid_num = valid_generator.samples
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.