UOMOP
Demerits of Over Augmetation 본문
BATCH_SIZE = 64
tr_generator = ImageDataGenerator(horizontal_flip=True,
vertical_flip=True,
rotation_range=20,
zoom_range=(0.7, 0.9),
width_shift_range=0.4, fill_mode="nearest",
rescale=1/255.0)
val_generator = ImageDataGenerator(rescale=1/255.0)
test_generator = ImageDataGenerator(rescale=1/255.0)
flow_tr_gen = tr_generator.flow(tr_images, tr_labels, batch_size=BATCH_SIZE, shuffle=True)
flow_val_gen = val_generator.flow(val_images, val_labels, batch_size=BATCH_SIZE, shuffle=False)
flow_test_gen = test_generator.flow(test_images, test_labels, batch_size=BATCH_SIZE, shuffle=False)
앞선, 과제에서 ImageDataGenerator 정의해주는 부분만 수정하였다. 4가지의 변수를 추가 지정하였다.
우선, fit과정에서 1 iteration 당 약 25초의 시간이 소요되었고, GPU를 활용하지 못하는 모습을 보여줬다.
compare_acc(result_before, result_after)
compare_loss(result_before, result_after)
eval_before = model_before.evaluate(test_images, test_labels, batch_size=BATCH_SIZE)
eval_after = model_after.evaluate(flow_test_gen)
print("\n##데이터 증강 전, test셋 성능 점수## : \nacc : {}\nloss : {}\n\n".format(eval_before[1], eval_before[0]))
print("##데이터 증강 후, test셋 성능 점수## : \nacc : {}\nloss : {}".format(eval_after[1], eval_after[0]))
성능 검사면에서도, 과도한 데이터 증강은 성능 저하를 초래할 수 있다는 결과를 확인할 수 있었다.
Comments