AI 및 Data Analysis

[Tensorflow] Metropolitan Museum of Art 데이터로 학습하기

doraemin_dev 2025. 2. 16. 11:27

가이드라인

https://github.com/IBM/tensorflow-kubernetes-art-classification/blob/master/README-ko.md#4-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B3%80%ED%99%98

 

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"