*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 이미지 사용 )
3.1 Caltech 이미지 다운로드
3.2 TFRecord 형태로 변환하기(1/2)
3.2 TFRecord 형태로 변환하기(2/2)
3.3 학습 및 평가하기
4. 학습된 모델 사용하기
이제 학습을 해보겠습니다. 2.2.1절 저사양용 학습하기 실습 중 2) Fine-tuning a model from an existing checkpoint 에서 사용한 방법으로 학습을 진행 하겠습니다.
python train_image_classifier.py
--train_dir=\tmp\train_inception_v1_caltech256_FineTune_logs
--dataset_name=caltech256
--dataset_split_name=train
--dataset_dir=\tmp\caltech256
--model_name=inception_v1
--checkpoint_path=\tmp\my_checkpoints/inception_v1.ckpt
--checkpoint_exclude_scopes=InceptionV1/Logits
--trainable_scopes=InceptionV1/Logits
--max_number_of_steps=1000
--batch_size=16
--learning_rate=0.01
--learning_rate_decay_type=fixed
--save_interval_secs=60
--save_summaries_secs=60
--log_every_n_steps=100
--optimizer=rmsprop
--weight_decay=0.00004
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 이미지 사용 )
3.1 Caltech 이미지 다운로드
3.2 TFRecord 형태로 변환하기(1/2)
3.2 TFRecord 형태로 변환하기(2/2)
3.3 학습 및 평가하기
4. 학습된 모델 사용하기
이제 학습을 해보겠습니다. 2.2.1절 저사양용 학습하기 실습 중 2) Fine-tuning a model from an existing checkpoint 에서 사용한 방법으로 학습을 진행 하겠습니다.
- 학습 1번 과정 #Fine-tune only the new layers for 1000 steps.
python train_image_classifier.py
--train_dir=\tmp\train_inception_v1_caltech256_FineTune_logs
--dataset_name=caltech256
--dataset_split_name=train
--dataset_dir=\tmp\caltech256
--model_name=inception_v1
--checkpoint_path=\tmp\my_checkpoints/inception_v1.ckpt
--checkpoint_exclude_scopes=InceptionV1/Logits
--trainable_scopes=InceptionV1/Logits
--max_number_of_steps=1000
--batch_size=16
--learning_rate=0.01
--learning_rate_decay_type=fixed
--save_interval_secs=60
--save_summaries_secs=60
--log_every_n_steps=100
--optimizer=rmsprop
--weight_decay=0.00004
python train_image_classifier.py --train_dir=\tmp\train_inception_v1_caltech256_FineTune_logs --dataset_name=caltech256 --dataset_split_name=train --dataset_dir=\tmp\caltech256 --model_name=inception_v1 --checkpoint_path=\tmp\my_checkpoints\inception_v1.ckpt --checkpoint_exclude_scopes=InceptionV1/Logits --trainable_scopes=InceptionV1/Logits --max_number_of_steps=1000 --batch_size=16 --learning_rate=0.01 --learning_rate_decay_type=fixed --save_interval_secs=60 --save_summaries_secs=60 --log_every_n_steps=100 --optimizer=rmsprop --weight_decay=0.00004
학습이 잘 이루어졌습니다.
- 학습 2번 과정 # Fine-tune all the new layers for 500 steps.
python train_image_classifier.py
--train_dir=\tmp\train_inception_v1_caltech256_FineTune_logs\all
--dataset_name=caltech256
--dataset_split_name=train
--dataset_dir=\tmp\caltech256
--model_name=inception_v1
--checkpoint_path=\tmp\train_inception_v1_caltech256_FineTune_logs
--max_number_of_steps=500
--batch_size=16
--learning_rate=0.0001
--learning_rate_decay_type=fixed
--save_interval_secs=60
--save_summaries_secs=60
--log_every_n_steps=10
--optimizer=rmsprop
--weight_decay=0.00004
python train_image_classifier.py --train_dir=\tmp\train_inception_v1_caltech256_FineTune_logs\all --dataset_name=caltech256 --dataset_split_name=train --dataset_dir=\tmp\caltech256 --model_name=inception_v1 --checkpoint_path=\tmp\train_inception_v1_caltech256_FineTune_logs --max_number_of_steps=500 --batch_size=16 --learning_rate=0.0001 --learning_rate_decay_type=fixed --save_interval_secs=60 --save_summaries_secs=60 --log_every_n_steps=10 --optimizer=rmsprop --weight_decay=0.00004
학습이 잘 이루어졌습니다.
- 평가하기
2.3.1절에서 저사양용으로 만든 실습 자료의 3번 모델 평가 방법으로 코드를 실행해 보겠습니다.
python eval_image_classifier.py
--alsologtostderr
--checkpoint_path=\tmp\train_inception_v1_caltech256_FineTune_logs\all\
--dataset_dir=\tmp\caltech256
--dataset_name=caltech256
--dataset_split_name=validation
--model_name=inception_v1
python eval_image_classifier.py –alsologtostderr --checkpoint_path=\tmp\train_inception_v1_caltech256_FineTune_logs\all\ --dataset_dir=\tmp\caltech256 --dataset_name=caltech256 --dataset_split_name=validation --model_name=inception_v1
모델 예측 정확도 평가가 나왔습니다.
학습하는데 10분도 사용하지 않았는데 TOP 5 예측 정확도가 90.5%가 나옵니다.
이상 TF-slim 모델을 응용해 Caltech 256 이미지를 학습시키고 평가까지 해보았습니다. 지금의 3장을 잘 응용하면 자신이 원하는 이미지에 얼마든지 딥러닝을 적용 시켜 볼 수 있을 겁니다!
질문은 댓글로 주세요.
안녕하세요. 친절한 포스팅 덕분에 잘 따라왔네요. 언제 포스팅이 되었는지 기다리고 있었습니다.^^
답글삭제두 가지 궁금한 점이 있는데요
1) 이미지 데이터 셋에서 임의로 train/validation을 알아서 나누어주는건가요?
2) 현재는 validation 셋에서 평가가 이루어지는데 제가 임의의 이미지를 input으로 하였을때 데이터셋에 대한 classification이 가능한지도 궁금합니다.
초보자도 잘 따라서 할 수 있는 포스팅에 항상 감사드립니다. ^^
여기까지 따라와주셨다니 대단하십니다!
삭제1) 네, 각 분류별 이미지 집합에서 train/validation 비율대로 알아서 Split 시켜줍니다.
2) 4장 학습된 모델 사용하기 에서 다룰 내용입니다.
다음 포스팅도 기대하세요.
세세한 설명 감사합니다. 4장은 언제 업데이트 예정이신가요? 궁금합니다 :)
답글삭제학습된 결과를 학습 step별로 저장하는 방법 혹은 옵션이 있나요?
답글삭제예를 들면 1000번 마다 결과 한번씩 저장하는 옵션이요~
지금 사용하는 옵션은 save_interval_secs=60은
60초마다 저장하는 옵션인가요? 결과 폴더에 보니 가장 최근 5건까지만 남아있는거 같아서 여쭤봅니다
4장 기다리고있습니다ㅠㅠ...
답글삭제4장 기다리고 있는 사람 한명 더 추가합니다!!
답글삭제저두 4장을 기다립니다..ㅠㅠㅠ
답글삭제