Project & Kaggle

Dog and cat Classification with CNN

robin0309 2020. 12. 15. 17:28

*  특정 그림에 개와 고양이가 포함되어 있는지 분류하는 kaggle 과제

 

* 전체적인 EDA 및 모델링 목차는 이렇다

 

1. 먼저 parameter를 정의하고 그림 file을 확인한다

 

2.  이후에 Training data 및 데이터를 담을 리스트를 만든다

 

3. 랜덤한 샘플 이미지는 이렇다

 

4. 이후 CNN 모델을 정의한다.

* 위의 모델 layer 가 이런식으로 구성 되어있다고 생각하면 된다

 

 

 5. 과적합을 방지하고 최상의 accuracy 지점을 찾기위해 callback 을 정의한다

* Image data generator 사용하는 이유 

-> 기본적으로는 이미지데이터 학습을 쉽게 하기 위해서인데

ImageDataGenerator 클래스를 통해 객체를 생성할 때 파라미터를 전달해주는 것으로 데이터의 전처리를 쉽게해주고
flow_from_directory 메소드를 활용하면 폴더 형태로된 데이터 구조를 바로 가져와서 사용가능하고 labeling도 해줌
3months.tistory.com/199 -> 참고

 

6. 모델 성능을 높이기 위해 값을 신경망 모형에 맞는 -1~1사이로 지정하고 데이터를 부풀린다.

 

7. validation은 generator에서 rescale 만 진행한다 ( 단순히 검증용 이므로)

 

8. 다양한 parameter를 지정하고 Model을 fitting 시킨다.

 

9. model 과  optimizer도 함께 저장 해두면 나중에 다시 이어서 학습하기 용이하고 

Weight만 저장하여 Transfer Learning 에도 적용 가능

 

10. accuracy와 val_accuracy를 시각화 하며 과적합이 시작되는 구간을 체크한다.

11. 예측값을 받아본다 (Predict)

12. Sample Test -> 괄호 안이 labeling

반응형
반응형