더북(TheBook)

같은 과정을 거쳐서 테스트셋도 생성해 줍니다.

test_generator = test_datagen.flow_from_directory(
    './data-ch20/test'     # 테스트셋이 있는 폴더 위치
    target_size=(150,150),
    batch_size=5,
    class_mode='binary')

모델 실행을 위한 옵션을 만들어 줍니다. 옵티마이저로 Adam을 선택하는데, 이번에는 케라스 API의 optimizers 클래스를 이용해 학습률을 따로 지정해 보았습니다. 조기 중단을 설정하고 model.fit()을 실행하는데, 이때 학습셋과 검증셋을 조금 전 만들어 준 train_generator test_generator로 지정합니다.

# 모델의 실행 옵션을 설정합니다.
model.compile(loss='binary_crossentropy', optimizer=optimizers.Adam
(learning_rate=0.0002), metrics=['accuracy']) -----➊ # 학습의 조기 중단을 설정합니다. early_stopping_callback = EarlyStopping(monitor='val_loss', patience=5) # 모델을 실행합니다. history = model.fit(train_generator, -----➋ epochs=100, validation_data=test_generator, -----➌ validation_steps=10, callbacks=[early_stopping_callback])

이제 CNN을 이용해 모델을 만들겠습니다.

이 실습에는 사이파이(SciPy) 라이브러리가 필요합니다. 코랩의 경우에는 기본으로 제공하지만, 주피터 노트북을 이용해 실습 중이라면 다음 명령으로 라이브러리를 설치해야 합니다.

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