[Tensorflow] ImageNet(1000개 클래스)으로 커스텀 모델 학습시키기
imagenet 데이터셋으로 학습시키는 방법
imagenet dataset은 총 1000개의 클래스를 갖고있으며 각각의 데이터 갯수는 다음과 같다.
- train 이미지 수 : 1231167
- validation 이미지 수 : 50000
- test 이미지 수 : 50000
✏️ 확인방법 : 자식 디렉토리의 파일까지 모두 세는 리눅스 명령어
find /폴더/경로 -type f | wc -l
먼저 모델을 학습시키기 전 imagenet 데이터셋 용량이 너무 크므로 tfrecord로 변환해준다.
변환방법은 아주 잘 나와있다. tfrecord 만드는 방법!
내 코드는 아래와 같은데 아주 살짝 변경을 해주었다. 이미지의 이름을 숫자로 변경하여 저장해 나중에 test 할때 용이하도록 함.
tfrecord로 변환이 되었다면 이제 학습을 시작한다. 먼저 tfrecord 파일을 다시 로드해 읽은 후 이것으로 학습을 진행하는 코드이다.
만약 학습하는데 있어서 accuracy와 loss값이 이상하다면 여기참고
학습 중간에 끊긴다면 저장된 weight를 불러서 다시 학습시키면 된다.
이렇게 model.compile 코드 이전에 넣어주면 됨
💡 주의사항! 학습이 끊긴 당시의 EPOCH 만큼 빼서 EPOCH을 다시 설정해 주어야 한다. 안그러면 만약 100번 중 12번에서 끊기고 다시 시작하면 다시 100번 돌아가기 때문에 initial_epoch = 12, epoch=100 이런식으로 다시 지정해주자
댓글남기기