로지스틱 회귀 분류기를 훈련하려면 새 파일을 열고 이름을 train_model.py로 지정하십시오.

2-8 행은 필수 Python 패키지를 가져옵니다. 그런 다음 명령 줄 인수를 구문 분석합니다.

여기에는 훈련이 완료된 후 출력 로지스틱 회귀 모델에 대한 경로와 함께 입력 HDF5 –db에 대한 경로 인 두 개의 스위치 만 필요합니다. 다음으로 읽기용 HDF5 데이터 세트를 열고 학습용 데이터의 75 %, 테스트 용 데이터의 25 % 인 학습 및 테스트 분할을 결정합니다.

이 기능 분할이 주어지면 LogisticRegression 분류기의 C 하이퍼 파라미터에 대한 그리드 서치를 수행합니다.

C의 최선의 선택을 찾으면 테스트 세트에 대한 분류 보고서를 생성 할 수 있습니다.

마지막으로, 훈련 된 모델은 나중에 사용할 수 있도록 디스크에 직렬화 할 수 있습니다.

ResNet50 기능에 대한 모델을 학습하려면 다음 명령을 실행하면됩니다.

결과에서 볼 수 있듯이 특징 추출을 통한 전이 학습을 사용하는 우리의 접근 방식은 98.69 %의 인상적인 정확도를 산출하여 Kaggle Dogs vs. Cats 순위표에서 2 위 자리를 차지하기에 충분합니다.
이 장에서 우리는 Kaggle Dogs vs. Cats 데이터 세트에 대해 자세히 살펴보고 다음과 같이 90 % 이상의 분류 정확도를 얻는 방법을 연구했습니다.
1. AlexNet을 처음부터 훈련합니다.
2. ResNet을 통한 전이 학습 적용.
AlexNet 아키텍처는 2012년 Krizhevsky 등이 처음 소개 한 작업입니다. AlexNet 구현을 사용하여 분류 정확도가 94 %에 도달했습니다. 이것은 특히 처음부터 훈련 된 네트워크의 경우 매우 존경할만한 정확성입니다. 추가 정확도는 다음을 통해 얻을 수 있습니다.
1. 더 많은 훈련 데이터 얻기.
2.보다 적극적인 데이터 증대를 적용합니다.
3. 네트워크 심화.
그러나 우리가 얻은 94 %는 상위 5 위는 말할 것도없고 상위 25 위 리더 보드에 진입하기에 충분하지 않습니다. 따라서 상위 5 위 위치를 얻기 위해 특성 추출을 통한 전이 학습, 특히 ImageNet 데이터 세트에서 훈련 된 ResNet50 아키텍처에 의존했습니다. ImageNet에는 개와 고양이 품종의 많은 예가 포함되어 있으므로 사전 훈련 된 네트워크를 이 작업에 적용하는 것은 더 적은 노력으로 더 높은 정확도를 얻을 수있는 자연스럽고 쉬운 방법입니다.
결과에서 알 수 있듯이 분류 정확도는 98.69 %로 Kaggle Dogs vs. Cats 순위표에서 2 위를 차지할 수있을만큼 높습니다.