[Tensorflow] Metropolitan Museum of Art 데이터로 학습하기
가이드라인
tensorflow-kubernetes-art-classification/README-ko.md at master · IBM/tensorflow-kubernetes-art-classification
Train a TensorFlow model on Kubernetes to recognize art culture based on the collection from the Metropolitan Museum of Art - IBM/tensorflow-kubernetes-art-classification
github.com
데이터 다운로드는 이전 글 참조.
https://doraemin.tistory.com/128
Metropolitan Museum of Art 데이터 다운하기
메트로폴리탄 미술관에 있는 예술 작품 모음 데이터 Dataset을 다운로드 하자. https://github.com/IBM/tensorflow-kubernetes-art-classification/blob/master/README-ko.md tensorflow-kubernetes-art-classification/README-ko.md at master
doraemin.tistory.com
1. 데이터 변환
1-1. 퍼블릭 모델 컬렉션을 갖고 있는 텐서플로우 git 레파지토리를 clone 합니다.
$ cd /your_home_directory
$ git clone https://github.com/tensorflow/models.git
1-2. models/slim 폴더에 있는 여러 이미지 분류 모델을 사용하거나 확장할 것입니다.
이 디렉토리에 제공된 코드로 다른 이미지 데이터셋을(CIFAR, Flowers, ImageNet) 처리하거나 여러 학습 모델 중에 선택할 수 있습니다. 이 코드 패턴의 미술품 이미지 데이터 셋을 처리하기 위해 이 코드를 기반으로 확장하겠습니다. 다음 파일을 이 디렉토리로 복사하십시오.
- 기존의 dataset_factory.py를 확장하거나 수정해서 나의 미술품 데이터셋을 처리할 수 있게 하는 과정이다.
- tensorflow-kubernetes-art-classification 프로젝트에 있는 dataset_factory.py 파일을 TensorFlow Slim 모델 디렉토리의 datasets 폴더로 복사하는 과정.
- arts.py는 미술품 데이터셋에 대한 구체적인 정보(예: 데이터 경로, 클래스 이름, 데이터 전처리 방식)를 정의한 파일이다. 이를 TensorFlow Slim의 datasets 디렉토리에 복사해서 네 미술품 데이터셋을 슬림 모델이 인식할 수 있도록 연결해 주는 거다.
$ cp tensorflow-kubernetes-art-classification/dataset_factory.py models/research/slim/datasets/dataset_factory.py
$ cp tensorflow-kubernetes-art-classification/arts.py models/research/slim/datasets/arts.py
1-3. 비정제된 이미지를 텐서플로우가 사용하는 TFRecord 포맷으로 변환하겠습니다.
데이터 셋을 변환하기 위해 met_art 폴더에 다운로드한 이미지 폴더를 넣습니다. 예를들면 /your_home_directory/data/met_art 폴더입니다. 다음 스크립트를 실행합니다.
$ cp tensorflow-kubernetes-art-classification/convert.py models/research/slim/convert.py
$ cd models/research/slim
$ python convert.py --dataset_dir="/your_home_directory/data"
(new_venv)
MK@KM MINGW64 ~/Documents/MJU/Activity/SKT_FLY_AI/github/AI/app (CNN)
$ which python
/c/Users/LG/Documents/MJU/Activity/SKT_FLY_AI/github/AI/app/\Users\LG\Documents\MJU\Activity\SKT_FLY_AI\github\AI\app\new_venv/Scripts/python
(new_venv)
MK@KM MINGW64 ~/Documents/MJU/Activity/SKT_FLY_AI/github/AI/app (CNN)
$ which pip
/c/Users/LG/AppData/Local/Programs/Python/Python310/Scripts/pip
문제 요약
- **python**은 가상환경 new_venv 내의 경로를 가리키고 있어 정상적입니다.
- **pip**은 시스템 Python의 경로 (/c/Users/LG/AppData/Local/Programs/Python/Python310/Scripts/pip)를 가리키고 있습니다.
즉, pip 명령어가 시스템 pip를 사용하고 있어서, 가상환경 내 tensorflow 설치가 제대로 되지 않은 거야.
해결 방법
가상환경 내 pip 직접 호출 python -m pip 명령을 사용하면 가상환경 내의 pip를 강제로 호출할 수 있어. 다시 tensorflow를 설치해보자:
(new_venv) $ python -m pip install tensorflow --force-reinstall
여기서 python은 가상환경 내 Python을 가리킵니다.
$ python models/two_cnn/tensorflow/models/research/slim/convert.py --dataset_dir="C:/Users/LG/Documents/MJU/
Activity/SKT_FLY_AI/github/AI/app/models/two_cnn/data"