-
Tf-slim fine tuning - VGG16 (Cat & Dog)AI-video&image/Classification 2020. 2. 17. 22:10
1. 환경
windows10
tensorflow 1.14.0
2. TFRecord 변환
1)download_and_convert_flowers.py복사 및 수정
download_and_convert_flowers.py복사하여 download_and_convert_catdog.py라고 이름 수정
그 파일에 들어가 하기 이미지에 수정이라고 된 부분은 내가 데이터에 알맞게 수정
2)download_and_convert_data.py파일 수정
from datasets import download_and_convert_catdog
elif FLAGS.dataset_name == 'catdog':
download_and_convert_catdog.run(FLAGS.dataset_dir)코드 실행
python download_and_convert_data.py --dataset_name=catdog --dataset_dir=/tmp/catdog
3. 학습
train_image_classifier.py 파일 수정
하기 두줄을 파일에 추가
session_config = tf.ConfigProto(allow_soft_placement=True)
session_config=session_config,
4. Fine Tuning 하기
하기 URL 하단 부분에서 ~.tar.gz라고 되어있는게 pretrained된 모델이라서
https://github.com/tensorflow/models/tree/master/research/slim
파인튜닝 하고자 하는 모델을 선택하여 다운로드 받은후 압축을 풀어 \tmp\my_checkpoints 폴더로 복사
파라미터들은 하기와 같이 설정하고 파인 튜닝함
batch_size 16
model vgg
optimizer rmsprop
weight_decay 0.00004
number of data : dog-1000 cat-1000
코드
python train_image_classifier.py --train_dir=\tmp\train_vgg_16_catdog_FineTune_logs --dataset_name=catdog --dataset_split_name=train --dataset_dir=\tmp\catdog --model_name=vgg_16 --checkpoint_path=\tmp\my_checkpoints\vgg_16.ckpt --checkpoint_exclude_scopes=vgg_16/fc8 --trainable_scopes=vgg_16/fc8 --max_number_of_steps=100 --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
--checkpoint_exclude_scopes=vgg_16/fc8
--trainable_scopes=vgg_16/fc8
vgg16의 마지막 레이어 fc8
5. Troubleshoot
cpu로 돌리다 보니 메모리 에러가 날 가능성이 많음
메모리 에러가 났을때는 주변 프로그램을 끄거나 컴퓨터를 다시시작하는것이 좋음
6. 결론
평가 실행 코드
python eval_image_classifier.py –alsologtostderr --checkpoint_path=\tmp\train_vgg_16_catdog_FineTune_logs\ --dataset_dir=\tmp\catdog --dataset_name=catdog --dataset_split_name=validation --model_name=vgg_16
Accuracy 0.96
7. 참고
dataset
https://www.kaggle.com/tongpython/cat-and-dog
Cat and Dog
Cats and Dogs dataset to train a DL model
www.kaggle.com
참고github
https://github.com/tensorflow/models/tree/master/research/slim
tensorflow/models
Models and examples built with TensorFlow. Contribute to tensorflow/models development by creating an account on GitHub.
github.com
질문1 - iteration 조정하는 부분이 없고 step이 있던데 step = 1 이라는게 batch size=1 이라고 설정하는것과 같은것인가? 아니면 step = 1이 내가 전에 batch size를 16이라고 설정을 했으면 설정한 16과 같은것인가
질문2 - 하기 clone loss가 뭔지 모르겠음 ㅠ
'AI-video&image > Classification' 카테고리의 다른 글
MobileNet V3 - Fine tuning (0) 2020.03.08 VGG16 - Keras Training / Finetuning 교육때 물어보기 (0) 2020.02.19 Tensorflow Slim 실행하기-inception_v1 (0) 2020.02.16