*Tensorflow 1.9 버전 튜토리얼
1. 윈도우에 Tensorflow GPU 버전 설치하기
2 딥러닝 slim 라이브러리 설치, 학습, 평가하기
3. 내 이미지로 학습 하기 ( caltech 이미지 사용 )
4. 학습된 모델 사용하기
0. Intro
1. 윈도우에 Tensorflow GPU 버전 설치하기
1.1 TF-Slim 소개
2.1 딥러닝 slim 라이브러리 설치 및 이미지 셋 다운로드
2.2 딥러닝 모델 학습하기
2.3 딥러닝 모델 평가하기
3. 내 이미지로 학습 하기 ( caltech 이미지 사용 )
4. 학습된 모델 사용하기
5. Python Tkinter GUI 응용 프로그램 만들기
eval_image_classifier.py 161번 라인에서 AttributeError: 'dict' object has no attribute 'iteritems' 라는 에러 메시지가 뜹니다.
Spyder로 해당 파일을 열어서 161번 라인을 위와 같이 기존 names_to_values.iteritems() 를 names_to_values.items() 로 바꾸고 저장후 다시 실행해 보겠습니다.
기존 eval_op=names_to_updates.values(), 을 eval_op=list(names_to_updates.values()), 로 아래와 같이 바꾸고 저장 후 다시 실행합니다.
마지막 부분에 보면 eval/Recall@5[1] 이라고 나온 부분은 ImageNet 처럼 모델에서 예측 확률이 가장 높게 나온 5개 class 중에 하나가 맞으면 맞다고 보는 정확도 측정 방법입니다. [ ] 안에 있는 값이 예측 정확도인데 무려 1 -> 100% 라는 말입니다! 근데 놀라지 마세요. Flowers 이미지는 원래 5개 중에서 하나를 맞추는 것이기 때문에 당연히 100% 예측 정확도가 나옵니다. 그 다음 줄에 있는 eval/Accuracy[0.8975] 에 있는 값이 실 예측 정확도 입니다. 89.75%가 나오는 것으로 평가 됩니다.
80.75% 분류 예측 정확도가 나옵니다.
다시 정리해보면 1번 모델이 가장 높은 정확도를 보였지만 3번 모델은 1번 모델에 비해 약 24분의 1의 학습 시간만으로 1번 모델과 거의 비슷한 모델 정확도를 얻을 수 있었습니다. 3번 모델을 500 step 보다 더 많은 step으로 학습을 계속 시킨다면 1번 모델보다 더 높은 정확도가 나올거 같네요.(직접 한번 해보세요)
다음에는 예제에 포함되어 있지 않은 Caltech 이미지(257 label class)를 어떻게 TF-Slim을 사용해서 딥러닝 모델을 만드는지 실습해 보도록 하겠습니다.
1. 윈도우에 Tensorflow GPU 버전 설치하기
2 딥러닝 slim 라이브러리 설치, 학습, 평가하기
3. 내 이미지로 학습 하기 ( caltech 이미지 사용 )
4. 학습된 모델 사용하기
0. Intro
1. 윈도우에 Tensorflow GPU 버전 설치하기
1.1 TF-Slim 소개
2.1 딥러닝 slim 라이브러리 설치 및 이미지 셋 다운로드
2.2 딥러닝 모델 학습하기
2.3 딥러닝 모델 평가하기
3. 내 이미지로 학습 하기 ( caltech 이미지 사용 )
4. 학습된 모델 사용하기
5. Python Tkinter GUI 응용 프로그램 만들기
지난 포스팅에서 3가지 방식으로 딥러닝 모델을 학습 시켜 보았습니다. 이번 포스팅에서는 그 3가지 모델의 정확도를 평가해보겠습니다.
3가지 모델의 종류는 아래와 같고,
순서대로 평가 해 보겠습니다.
1번 모델 : Flowers로부터
새롭게 만든 모델
2번 모델 : 이미 잘
만들어진 모델로부터 Flowers로 마지막 layer만 학습해
만든 모델
3번 모델 : 2번에서
만든 모델로부터 전체 layer를 학습해 만든 모델
아나콘다에서 slim 폴더로 이동한 후 아래 명령어로 1번 모델을 평가해보겠습니다.
python eval_image_classifier.py
--alsologtostderr
--checkpoint_path=\tmp\train_inception_resnet_v2_flowers_logs\
--dataset_dir=\tmp\flowers
--dataset_name=flowers
--dataset_split_name=validation
--model_name=inception_resnet_v2
python eval_image_classifier.py –alsologtostderr --checkpoint_path=\tmp\train_inception_resnet_v2_flowers_logs\ --dataset_dir=\tmp\flowers --dataset_name=flowers --dataset_split_name=validation --model_name=inception_resnet_v2
eval_image_classifier.py 파일이 --checkpoint_path 로 지정된 폴더의 모델을 평가하는 명령어 입니다. 실행을 해보면 아래와 같은 에러가 발생합니다.
eval_image_classifier.py 161번 라인에서 AttributeError: 'dict' object has no attribute 'iteritems' 라는 에러 메시지가 뜹니다.
또 에러가 나네요. 이번엔 186번 라인입니다.
모델 평가 결과를 확인해 보겠습니다.
다음은 2번 모델을 평가하겠습니다.
2번 모델의 위치만 --checkpoint_path에 지정해주고 실행시킵니다.
python eval_image_classifier.py
--alsologtostderr
--checkpoint_path=\tmp\train_inception_resnet_v2_flowers_FineTune_logs\
--dataset_dir=\tmp\flowers
--dataset_name=flowers
--dataset_split_name=validation
--model_name=inception_resnet_v2
python eval_image_classifier.py –alsologtostderr --checkpoint_path=\tmp\train_inception_resnet_v2_flowers_FineTune_logs\ --dataset_dir=\tmp\flowers --dataset_name=flowers --dataset_split_name=validation --model_name=inception_resnet_v2
3번 모델을 평가 하겠습니다.
python eval_image_classifier.py
--alsologtostderr
--checkpoint_path=\tmp\train_inception_resnet_v2_flowers_FineTune_logs\all\
--dataset_dir=\tmp\flowers
--dataset_name=flowers
--dataset_split_name=validation
--model_name=inception_resnet_v2
python eval_image_classifier.py –alsologtostderr --checkpoint_path=\tmp\train_inception_resnet_v2_flowers_FineTune_logs\all\ --dataset_dir=\tmp\flowers --dataset_name=flowers --dataset_split_name=validation --model_name=inception_resnet_v2
3번 모델은 88.5%의
분류 예측 정확도를 보였습니다.
Steps
|
학습 시간
|
모델 정확도
|
|
1번 모델
|
29233
|
24.383 시간
|
89.75 %
|
2번 모델
|
1000
|
0.27 시간
|
80.75 %
|
3번 모델
|
500
|
0.41 시간
|
88.5 %
|
지금까지 Tensorflow slim (TF-Slim)을 이용한 딥러닝
이미지 분류기 모델의 이미지 준비부터 모델 학습, 평가 까지 실습을 다 해보았습니다.
중간에 발생하는 에러 수정까지 단계별로 기술해주셔서
답글삭제예제를 정말 쉽게 따라할 수 있도록 만들어주셨군요.
좋은 내용에 감사드립니다.
다음 편도 기대하고 있겠습니다 ^^
네 도움 되었다니 뿌듯합니다. 빨리 다음 편을 올려야 하는데...^^;
삭제좋은 자료 올려주셔서 감사합니다..
답글삭제하나하나 설명도 정말 잘해주시고 이유도 잘 설명해 주셔서 잘따라 가고 있습니다.
좋은 내용에 정말 감사드립니다.
다음편도 기대하고있습니다 화이팅!!
감사합니다. 다음편도... 화이팅!
삭제그대로만 따라해도 돌아가는 보기드문 포스팅이네요 ㅋㅋ
답글삭제정말 감사합니다!!
네 한땀 한땀 정성스럽게... 작성했습니다 ㅋㅋ
삭제좋은 포스팅 감사합니다!^^
답글삭제네 도움 드려 기쁨니다. ㅎ
삭제아주 좋은 포스팅 보고 있습니다
답글삭제3절부터 기대 기다리고 있습니다 !!!!
네 다들 기다리시고 계신데..
삭제빨리 올리도록 할게요!
좋은 포스팅 감사합니다 ^^
답글삭제위 평가에서.. 특정 이미지 파일에 대해서
평가를 해 보려고 하면 어떻게 할 수 있을까요?
이것도 예제 코드는 만들어 놓았는데...
삭제포스팅할 시간이 잘 나지 않네요~
조금만 기다려 주세요~~