주제를 딱히 정하기 싫을때

Keras Cat Dog 분류 - 5. 딥러닝 시작하기 - 콜백 함수

Bigcat 2019. 6. 13. 18:55

설치 부터 실제 분류까지 keras로

 Cat과 Dog 데이터 셋으로 끝까지 해보기

2019/06/13 - [주제를 딱히 정하기 싫을때] - Keras Cat Dog 분류 - 4. 딥러닝 시작하기 - 훈련 데이터 분류하여 복사하기

 

Keras Cat Dog 분류 - 4. 딥러닝 시작하기 - 훈련 데이터 분류하여 복사하기

설치 부터 실제 분류까지 keras로 Cat과 Dog 데이터 셋으로 끝까지 해보기 2019/06/13 - [주제를 딱히 정하기 싫을때] - Keras Cat Dog 분류 - 3. 딥러닝 시작하기 - 데이터 확보및 구성 Keras Cat Dog 분류 - 3...

redapply.tistory.com

 

7 콜백 함수 만들기

  • 콜백 함수를 만드는 이유는 모델 훈련시 통제를 할 수 있기 때문입니다.

  • 콜백 함수가 없으면 좋던 싫든 훈련이 끝날때까지 아무 것도 제어 할 수가 없습니다.

  • 콜백 함수는 베스트 가중치 선별 저장부터 모델 부적격시 자동 중단할 수 있습니다.

  • 다양한 기능이 있으니 관련 자료를 찾아 보시고 원하는 세팅을 하십시요.

 

  • 필요한 라이브러리

    • datetime 

      • 시간과 관련되 파이썬 함수

      •  여기에선 모델의 이름이 중복하지 않고 저장하기 위해 사용됩니다.

    • keras 

    • os

 

  • 모델과 텐셔보드 그래프 저장하기 위한 폴더

    • save_dir = './my_log'

    • if not os.path.isdir(save_dir):

                             os.makedirs(save_dir)

  • 프로젝트 이름

    • project_name = 'dog_cat_CNN_model'

    • 저장할 모델 명칭입니다.

 

  • save_file 함수 만들기

    • 현재 시각으로 구성된 파일명으로 학습한 모델을 저장합니다.

    • 여기에서 저장하는 것이 아니고 이름조합을 만들어 콜백함수에서 저장합니다.

    •  

 

 

  • 콜백함수

    • TensorBoard() 를 사용합니다.

      • graph , image 사용을 합니다.

      • log_dir 은 텐션보드 그래프를 저장할 디렉토리를 지정해 줍니다.

    • EarlyStopping()

      • 학습중 평가시 모델 훈련 종료 시점을 정합니다.

      • monitor 는 종료 시키기 위한 관찰대상을 의미합니다.

        • 'val_loss', 'val_acc' 등이 있습니다

      •  patience 는 모니터 대상의 평가가 지정한 횟수 만큼 나아지지 않으면 훈련을 종료합니다

        • monitor = 'val_acc' , patience = 5 이라면

        • 검증데이터 정확도가 5 에포크만큼 나아지지 않으면 훈련을 종료합니다

    • ModelCheckpoint()

      • filepath 는 모델 저장 위치

      • monitor 는 모델에 저장할 가중치 , 주로 'val_loss'사용

      • save_best_only , 최상의 가중치만 기록여부 

 

 

 

여기까지가 콜백함수 구성마무리 입니다.

나중에 이  간단한 함수가 어떤 힘을 발휘 하는지 보시게 됩니다.

 

 

 

 

다음 절에서는 모델을 구성하겠습니다.

 

Keras Cat Dog 분류 - 딥러닝 시작하기 .ipynb
0.00MB