AI를 활용한 재밌는 것들을 개발합니다

2017년 2월 19일 일요일

윈도우에서 Tensorflow slim 모델 사용하기 - 3.2 TFRecord 형태로 변환하기(1/2)

*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. 학습된 모델 사용하기

- download_and_convert_data.py 코드 변경


 앞절에 이어 Caltech 이미지들을 TFRecord 형태로 변환 시키기 위해 download_and_convert_data.py 코드를 Spyder로 열어 분석 해보겠습니다.


 39~41, 62~67 라인을 보면 각각의 이미지 셋에 대응하는 또다른 python 코드들이 할당 되어 있는 것을 볼 수 있습니다. 우리는 Caltech256 이라는 키워드를 사용할 것이기 때문에 기존 코드에 Caltech256 관련 코드를 추가해 보겠습니다.


 위와 42라인, 69~70라인에 clatech256 키워드가 작동하도록 코드를 추가하고 저장하세요.


- slim\datasets\ 에 Caltech 파일 만들기


slim 모델 폴더에 보면 datasets 라는 폴더가 보일 겁니다. 그 안에 보면 아래와 같은 파일들로 구성되어 있습니다.


오호라... 딱 보니 각 이미지셋 마다 대응되는 파일들이 만들어져 있네요. 그럼 같은 형태로 Caltech256 파일도 만들어주면 되겠습니다. 우리는 현재 Flowers를 참고해서 만들고 있기 때문에 download_and_convert_flowers.py 를 복사해서 이름을 download_and_convert_caltech256.py로 변경하겠습니다. 동일하게 flowers.py를 복사해서 이름을 caltech256.py로 변경 하겠습니다.


- download_and_convert_caltech256.py 파일 수정하기


그럼 download_and_convert_caltech256.py 파일을 Spyder로 열어서 살펴보겠습니다.


 코드를 수정하면서 진행하기 때문에 코드 라인넘버는 무시하고 키워드를 보면서 본인의 실습 코드를 수정하기 바랍니다.
 처음 변경해야 하는 코드는 _NUM_VALIDATION 입니다. 기존 flower 이미지에서는 350으로 설정되어 있었습니다. 설정 값의 의미는 TFRecord 형태의 파일로 변환 할때 Train 용 파일과 Validation 파일용으로 따로 변환하게 되는데 이때 Validation에 해당하는 파일에 몇개의 이미지를 할당할것인지 정하는 값입니다. 우리는 Caltech256 이미지가 총 30607개이고 여기에서 20%에 해당하는 6121개의 이미지를 Validation 용으로 할당하겠습니다.

 다음 코드는 _NUM_SHARDS 입니다. Flowers 이미지는 5라는 값이 설정되어 있었습니다. 실제 tmp\flowers\ 폴더에 가보면 TFRecord로 변환된 이미지 파일이 Train/Validation 각각 5개의 파일로 변환되어 있는 것을 볼 수 있습니다. Train의 파일 하나가 40MB 정도 되네요. 그럼 Caltech256 전체 이미지 용량이 1.1GB 정도 되니 20을 설정하면 Train 파일 하나당 40MB 정도 될거 같네요.


 다음은 def _get_filenames_and_classes(dataset_dir): 함수를 수정해 보겠습니다. 위와 같이 flower라는 단어가 보일 겁니다. 아래와 같이 flower 를 caltech256으로 변경하겠습니다.


 마지막으로 바꿀 코드는 아래와 같습니다. TFRecord 형태의 출력 파일 이름을 설정하는 코드 입니다. flowers 를 caltech256으로 변경하고 저장해주세요.



 다음 절에서는 caltech256.py 코드를 수정해 보겠습니다.

댓글 없음:

댓글 쓰기

가장 많이 본 글