Google Cloud Platform 으로 AutoML Vision

https://hello-bryan.tistory.com/373


Google Cloud Platform
AutoML
Train, Deploy, Test

 

GCP(Google Cloud Platform) 를 이용하여 구름 모양을 분류하는 모델을 학습시키는 방법입니다.

로컬 학습 코드도 필요없고, GPU자원도 필요없습니다. 클라우드 환경에서 몇번의 클릭만으로 자신만의 모델을 만들 수 있습니다.

(기존의 데이터셋이 없다면 이미지를 모으고 라벨링 하는 작업은 필요할 수 있습니다.)

 

간단히 정리하면

1. 프로젝트 생성
2. 스토리지 및 버킷 생성
3. 데이터 업로드 (이미지 + 라벨정보)
4. 학습
5. 배포
(여기서 데이터셋은 이미 존재하는 것을 사용합니다)

 

 

하나의 프로젝트를 생성하고, Cloud AutoML API 를 Enable 시킵니다.

APIs & Services > Library > "Cloud AutoML API" 검색

img.png

 

Cloud AutoML API 클릭

 

img.png

Enable 클릭. (아래 이미지는 Enable 된 상태입니다.)

 

img.png

 

데이터셋 생성

학습에 필요한 이미지들을 업로드 합니다.

직접 업로드도 가능하지만, 클라우드에 이미 존재하는 이미지를 업로드 하는 방법입니다.

우측 상단에 Active Cloud Shell 아이콘을 눌러서 Cloud Shell 을 활성화 시킵니다.

img.png

 

활성화된 Shell 에서 아래 명령어를 순서대로 실행해 봅니다.

- Active 된 Account 확인하기

$ gcloud auth list
img.png

Project list 확인하기

$ gcloud config list project
img.png

 

위에서 확인한 Project 와 Username 을 환경변수로 등록합니다.
(두번째 줄은 수정 필요)

export PROJECT_ID=$DEVSHELL_PROJECT_ID
export QWIKLABS_USERNAME=<여기에 위에서 조회한 UserName>
# 예 export QWIKLABS_USERNAME=[email protected]

 

AutoML permission 을 주는 커맨드 입니다. (그대로 실행)

gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member="user:$QWIKLABS_USERNAME" \
    --role="roles/automl.admin"

저장공간 버킷을 생성하는 커맨드 입니다. (그대로 실행)

gsutil mb -p $PROJECT_ID \
    -c standard    \
    -l us-central1 \
    gs://$PROJECT_ID-vcm/

 

라벨링 된 학습용 데이터가 필요해서 샘플로 제공해 주는 "세가지 구름 타입 분류" 데이터를 사용합니다.

세가지의 다른 구름 타입을 구분하는 것을 학습시키기 위해 현재 프로젝트로 클라우드 이미지를 복사합니다.

버킷 환경변수를 생성합니다. (그대로 실행)

export BUCKET=$PROJECT_ID-vcm

이미지 복사 (그대로 실행)

gsutil -m cp -r gs://spls/gsp223/images/* gs://${BUCKET}

 

Cloud Storage 에서 생성된 저장공간을 확인합니다.

 

img.png

 

클릭

img.png

 

폴더 세개가 업로드 된것을 확인할 수 있습니다.

 

img.png

 

학습용 데이터 생성

이제 데이터는 클라우드 저장공간에 있고, AutoML Vision 이 접근하도록 해야합니다.

각각 이미지와 라벨링 된 데이터 정보를 담고있는 csv 파일을 가져옵니다. ( 커스텀 데이터를 학습시키려면 별도로 생성해야 합니다 )

Cloud Shell 에서 다음을 실행합니다.

이미 존재하는 csv 파일을 복사해옵니다.

gsutil cp gs://spls/gsp223/data.csv .

그 다음, 프로젝트의 파일로 CSV를 업데이트 합니다.

sed -i -e "s/placeholder/${BUCKET}/g" ./data.csv

이제 클라우드 저장공간 버킷으로 파일을 업로드 합니다.

gsutil cp ./data.csv gs://${BUCKET}
img.png

data.csv 가 업로드 되었습니다.

 

데이터셋 생성

Vision > Datasets 메뉴 클릭

img.png

 

상단에 + NEW DATASET 클릭 > Single-Label Classification 선택 > CREATE DATASET 클릭

img.png

 

CSV 파일을 선택해야 합니다. 

Select a CSV file on Cloud Storage 를 선택하고 

경로는 {Bucket}/data.csv 를 입력합니다. ( 또는 버킷으로 이동해서 파일의 클라우드 url 을 복사할 수 있습니다 )

img.png

 

업로드 된 이미지와 어떤 분류로 표시되어 있는지 확인 할 수 있습니다.

img.png

물론, 수정도 가능합니다.

이미지 하나를 클릭하고 상세 페이지로 들어가보면 아래와 같이 

세가지 타입과 Unlabeled 를 선택할 수 있습니다.

img.png

 

 

학습하기

TRAIN 탭으로 넘어갑니다. Labeling 된 데이터의 분포를 확인하고 학습을 시작합니다. START TRAINING 클릭 

img.png

 

팝업이 뜨면 무료로 학습하기 위해 8 node hours 를 입력합니다.

학습 후에 바로 Deploy 하는 옵션이 있지만 지금은 체크하지 않습니다.  START TRAINING 클릭

img.png

학습 중이라고 표시됩니다. 20~30분 걸린것 같습니다.

img.png

 

학습이 완료되면 결과가 표시됩니다.

img.png

 

EVALUATE 탭에서 아래와 같은 정보를 확인할 수 있습니다.

img.png

 

모델 배포

이제 생성된 모델을 배포하고 테스트 할 수 있습니다.

TEST & USE 탭을 클릭하고 Model을 선택한 다음 DEPLOY MODEL 을 클릭합니다.

img.png

팝업이 뜨면 DEPLOY 를 클릭

img.png

배포가 되는 중입니다. 10~20분정도 소요됩니다.

img.png

 

배포가 완료되면 아래와 같이 메시지가 보입니다.

그리고 UPLOAD IMAGES 버튼을 눌러서 구름 이미지를 업로드하면 분류된 결과를 볼수 있습니다.

img.png

 

 

이렇게 코드도 없이 클릭만으로 ML 모델을 생성하고 배포하여 실행까지 해볼 수 있습니다.

그리고 지금은 무료 버전으로 했기 때문에 이 프로젝트는 2시간이 지나면 이 모든 환경이 사라지게 됩니다.

 

내가 원하는 분류 이미지를 올리고 라벨링을 하기만 하면, 내가 원하는 ML모델을 만들고 배포까지 됩니다.

연구인력이 없는데 ML모델이 필요한 회사에서는 이런 방법이 좋을듯합니다.

역시 구글..

024.gif
0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

AI / BIg Data

번호 제목 글쓴이 날짜 조회수
5 [MacOS] 텐서플로우(Tensorflow2.x) GPU 딥러닝 개발환경 구축 관리자 10-06 183
4 Google Cloud Platform 으로 AutoML Vision 관리자 05-03 449
3 Transformer 관리자 03-30 499
2 gpu 관리자 03-18 512
1 머신러닝 개념과 교차검증 수행하기 K 폴드, Stratified K 폴드, cross_val_score 관리자 01-13 597