์ ๋งํฌ์ ์ ์ ํ ๊ฐ์ ๋ฐ 300$ ํฌ๋ ๋ง ์๋ น
ํ๋ก์ ํธ ์์ฑ
์ข์ธก ์๋จ์ ํ์ ๋ฉ๋ด๋ฅผ ํด๋ฆญํ๊ณ , ML์์ง์ ๋ค์ด๊ฐ์ ๋ชจ๋ธ์ ๋ง๋ค์ด์ค๋ค.
์ ์ฌ์ง์ฒ๋ผ ๊ฐ ์ข ์๋น์ค๋ค์ ๊ณ ์ ํด๋๋ฉด ๋๊ณ ๋๊ณ ํธํ๋ค.
Storage์ ๋ค์ด๊ฐ์ ๋ฒํท์ ๋ง๋ ๋ค.
์ด๋ฆ์ ์์์, ๊ธฐ๋ณธ ์ ์ฅ์ ํด๋์ค๋ Multi-Regional, ์์น๋ ์์์๋ก ํด์ค์๋ค.
์ ๋งํฌ์ ๋ค์ด๊ฐ์ ํ๋ก์ ํธ๋ฅผ ๋ฑ๋กํ๋ค.
์๋ ์ฌ์ง๊ณผ ๊ฐ๋ค
์๋ ์ https://cloud.google.com/ml-engine/docs/tensorflow/getting-started-training-prediction ์ ์ ์ ํ
์ปจํธ๋ฃฐ + F๋ก Enable the Cloud Machine Learning Engine and Compute Engine APIs. ๋ฅผ ์ฐพ๊ณ
ENABLE THE APIS ๋ฒํผ์ ๋๋ฌ์ค๋ค.
๊ทธ๋ ๋ค ์ด ํํ ๋ฆฌ์ผ์ ๊ตฌ๊ธ ํด๋ผ์ฐ๋ ํ๋ซํผ์์ ์ ๊ณตํ๋ ๋ฌธ์๋ฅผ ์ฎ๊ธด ๊ฒ์ด๋ค. ์ ๋ง ์ธ๋ชจ์๋ ์ง์ด๋ค.
์ ๋งํฌ์ ๋ค์ด๊ฐ์ ์๋น์ค ๊ณ์ ํค๋ฅผ ๋ง๋ค์ด์ค๋ค.
์๋น์ค ๊ณ์ ์ Compute Engine default service account๋ฅผ ์ ํํ๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ์๋ ์ Go to the Create service account key page in the GCP Console. ๋ฅผ ์ฐพ๊ณ
Go to the Create service account key page ๋ฒํผ์ ๋๋ฌ์ค๋ค.
์์ ๊ฐ์ ๋ชจ์ต์ด ๋ณด์ด๋ฉด ์๋๊ฒ์ด๋ค.
ํค ์ ํ์ JSON์ ์ ํํ๋ค.
์์ฑ ๋ฒํผ์ ๋๋ฅด๋ฉด JSON ํ์ผ์ด ๋ค์ด๋ก๋ ๋ ๊ฒ์ด๋ค.
๋ฐ๋ก ํด๋๋ฅผ ๋ง๋ค์ด์ ๋นผ๋๋๋ก ํ์!
cmd๋ฅผ ์ด๊ณ ์๋ ๋ช ๋ น์ด๋ฅผ ์ ์ด์ค๋ค.
PATH์๋ ๋ฐฉ๊ธ ๋ค์ด๋ฐ์ JSONํ์ผ์ ์์น๋ฅผ ์ ๋ ฅํ๋ค.
set GOOGLE_APPLICATION_CREDENTIALS=[PATH]
๋์ ๊ฒฝ์ฐ์ ์๋์ ๊ฐ๋ค.
set GOOGLE_APPLICATION_CREDENTIALS=[C:\Users\SDH\Desktop\MINESLAB\GCP_tensorflow_test\test-f0439c5d022a.json]
์ฌ๊ธฐ๊น์ง ํ์ผ๋ฉด ์๋์ ๋งํฌ๋ฅผ ๋๋ฌ ๊ตฌ๊ธ ํด๋ผ์ฐ๋ SDK๋ฅผ ๋ค์ด๋ฐ๋๋ค.
https://dl.google.com/dl/cloudsdk/channels/rapid/GoogleCloudSDKInstaller.exe
์ค์น๊ฐ ๋์๋ค๋ฉด Google Cloud SDK Shell์ ์คํ ์ํค๊ณ
gcloud init์ด๋ผ๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ค๋ค.
์ง์ญ ๋นผ๊ณ ๋ ์์์ ์ ํด์ฃผ๋ฉด ๋๋ค.
์ง์ญ์ ๊ฒฝ์ฐ 2018/09/28 ๊ธฐ์ค ๋์ง ์๋ ์ง์ญ์ด ๋ช๊ตฐ๋ ์์๋ค.
์๋๋ ์ง์ญ์ผ ๊ฒฝ์ฐ shell์ด ์์์ ์๋ ค์ค๋ค. ์๋๋ ์ง์ญ์ ํผํ๊ณ ์ ํํ๋ฉด ๋๋ค.
์ฌ์ค ์ด ํํ ๋ฆฌ์ผ์ ํ์๊ฐ ๊ธํ๊ฒ ํ๋ค๊ฐ ๋ฌ๊ธ์์ด ์ฐ๊ฒ ๋์ด ๋ฒ๋ ธ๋๋ฐ
ํ๊ณผ ๋๊ธฐ๊ฐ ํํ ๋ฆฌ์ผ์ ์์ฒญํด์ ์ฐ๋ ๊ฒ์ด๋ค. ๋๋ฌธ์ SDK๋ฅผ ์๋ก ์ค์นํ์ง ์๊ณ
๊ธฐ์ต์ ์์กดํด์ ํํ ๋ฆฌ์ผ์ ์ฐ๋ ์ค์ด๋ค. ์ฆ, ์ ํํ์ง ์์ ์๋ ์๋ค.
์ ์๋๋ค๋ฉด ์นดํก์ผ๋ก ๋ฌผ์ด๋ณด์ธ์.
init ๊น์ง ๋ค ๋์๋ค๋ฉด ์๋ ๋จ๊ณ๋ฅผ ์งํํ๋ฉด ๋๋ค.
๊ตฌ๊ธ ํด๋ผ์ฐ๋ ํ๋ซํผ์ ์ ์ํด์ ์์ ์ ํ๋ก์ ํธ๋ก ๊ฐ๋ณด์.
์ฌ๊ธฐ์ ํ๋ก์ ํธ ID๋ฅผ ๋ณต์ฌํด์ค๋ค.
์ฐ์ธก ์๋จ ๋ฉ๋ด์ ๋ณด๋ฉด Cloud Shell ํ์ฑํ ๋ฒํผ์ด ์๋ค.
์ฝ์์ด ์ผ์ง๋ฉด ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ค.
gcloud config set project [selected-project-id]
๋ธ๋ผ์ผ ์์๋ ์๊น ๋ณต์ฌํ ํ๋ก์ ํธ ID๋ฅผ ๋ถ์ฌ ๋ฃ๋๋ค.
๋ธ๋ผ์ผ์ ์ง์์ค์๋ค. ์๋ ์ฌ์ง์ฒ๋ผ ์๋ฌ๊ฐ ๋ฐ ์๋ ์์ต๋๋ค.
์ ๊ณผ์ ๊น์ง ํ๋ค๋ฉด Google Cloud SDK Shell์ ์ผ ๋ค.
์๊น ์ค์นํ ๊ทธ๊ฒ ๋ง๋ค. ์คํ์์ผ์ฃผ์. ์๋ ๋ช ๋ น์ด๋ ์คํ์์ผ์ฃผ์.
gcloud ml-engine models list
์์ ๊ฐ์ด ๋์จ๋ค๋ฉด ์ ์์ด๋ค.
gcloud projects list ๋ผ๊ณ ์ ๋ ฅํ๋ฉด ๊ณ์ ์ ๋ชจ๋ ํ๋ก์ ํธ๋ฅผ ๋ณผ ์ ์๋ค.
๋ค๋ฅธ ๋ช ๋ น์ด๋ gcloud --help ๋ฅผ ์ ๋ ฅํด์ ๋ณผ ์ ์๋ค.
์ด์ ํด๋ ํ๋๋ฅผ ๋ง๋ค์ด์ฃผ์. ์๊น JSON ํ์ผ์ ์ ์ฅํ ํด๋๋ผ๋ ์๊ด์๋ค.
init.py ๋ผ๋ ํ์ผ์ ๋ง๋ ๋ค. ์ธ๋๋ฐ(under line) ๋๊ฐ๋ฅผ ์ ๋ค๋ก ๋ถ์ฌ์ฃผ์ด์ผ ํ๋ค.
๊นํ๋ธ ๋งํฌ๋ค์ด ๋ฌธ๋ฒ์ ์ธ๋๋ฐ๊ฐ ๋์ค์ง ์๋๋ค. ๋ฐฉ๋ฒ์ด ์์ํ ๋ฐ ํ์๊ฐ ์ด๋ป๊ฒ ํ๋์ง ๋ชจ๋ฅธ๋ค. ์๋ ์ฌ์ง ์ฐธ๊ณ .
์์ ์๋ฌด๊ฒ๋ ๋ค์ด์์ง ์์๋ ์๊ด์๋ค.
๊ทธ ๋ค์ ๊ฐ๋จํ ์ฝ๋ฉ์ ํด์ค๋ค.
ํ์๋ ๊ฐ๋จํ ๊ณ์ฐ์ ํด๋ณด์๋ค.
300$ ํฌ๋ ๋ง์ด ์ฃผ์ด์ก๋ค๊ณ ํ์ง๋ง, ๋ก์ปฌ์์ ํ๋ฒ์ฏค ๋๋ ค๋ณด๊ณ ํด๋ผ์ฐ๋์ ์ ๋ก๋ ํ๋ ๊ฒ์ด ๊ฒฝ์ ์ ์ธ๊ฒ ๊ฐ๋ค.
cmd๋ฅผ ์ด์ด์ค๋ค.
๊ทธ๋ฆฌ๊ณ ๊ธด ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ค๋ค.
์๋๋ ์์์ด๋ค.
gcloud ml-engine jobs submit training [job์ ์ด๋ฆ] --package-path= [๋๋ฆด ์์ค์ ์์ dir๊น์ง ์ ๋ ฅ] --module-name= [๋๋ฆด ์์ค์ ์์ dir์ ์์ค ์ด๋ฆ ์ ๋ ฅ] --staging-bucket=[gs://์๊น ๋ง๋ ๋ฒ์ผ ์ด๋ฆ]
์ด๊ฒ ํ ๋ช ๋ น์ด๋ค. ์์ฒญ๊ธธ๋ค.
์ฌ์ง๊ณผ ์ค๋ช ์ ๋ฒ๊ฐ์๊ฐ๋ฉด์ ๋ณด๋ฉด ์ดํด๋ ๊ฒ์ด๋ค.
์ ๋ช ๋ น์ด ๋ฉ์ด๋ฆฌ๋ฅผ ์ ๋ ฅํ๋ค๋ฉด ์ฌ์ง๊ณผ ๊ฐ์ด state:QUEUED๋ผ๋ ๊ฒ์ ๋ณด๊ฒ ๋ ๊ฒ์ด๋ค.
์ ๋๋ก ๋์๋ค๋ฉด ๊ตฌ๊ธ ํด๋ผ์ฐ๋ ํ๋ ํผ์ ์ ์ํด์ ML์์ง ๋ฉ๋ด์ ์ ์ํ๋ฉด ์๋์ ๊ฐ์ ๋ชจ์ต์ด ๋ณด์ผ ๊ฒ์ด๋ค.
์์ ์ ์งํ ์ํฉ์ cmd์ฐฝ์์ ๋ณด๊ณ ์ถ๋ค๋ฉด ์๋์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ๋๋ค.
์ gcloud ๋ช ๋ น์ด๊ฐ ์๋ ์ฌ์ง์ ๋ณด๋ฉด state:QUEUED์ ์ ์์ค์๋ ์ ํ์๋ค.
gcloud ml-engine jobs stream-logs [job์ ์ด๋ฆ]
์์ ์ด ๋ค ๋์๊ฐ๋ค๋ฉด ์์ ๊ฐ์ด ๊ฒฐ๊ณผ๊ฐ ๋์ฌ ๊ฒ์ด๋ค.
ํ์๋ฉ๋ด์์ ๊ฒฐ์ ์ ๋ค์ด๊ฐ๋ฉด ์์ ์ ๊ฒฐ์ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์๋ค.
์ฒ์์ ๊ฐ์ ํ๊ณ ๋ฐ์ 300$ ํฌ๋ ๋ง์ ๋ํ ๋ง๋ฃ์ผ๊ณผ ์์ก๋ ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
***USE GPU & Choose Runtime Version, Python Version
์ด์ ml engine์ ์ฌ์ฉํ๋ ๋๋ถ๋ถ์ ์ด์ ์ธ GPU ์ฌ์ฉ๋ฒ์ ๋ํด ์์๋ณด์.
ml engine์ GPU๋ฟ๋ง ์๋๋ผ CPU์ TPU ๋ฑ ๋ค์ํ ๊ณ ์ฑ๋ฅ ์ปดํจํ ๋จธ์ ์ ์ ๊ณตํ๋ค.
TPU ์ฌ์ฉ๋ฒ์ ๋ํด์๋ ํ์ ์ถ๊ฐํ๋๋ก ํ๊ณ , ์ด๋ฒ์ GPU ์ฌ์ฉ๋ฒ์ ๋ํด ์์๋ณด์.
์ฐ์ ์๋๋ ml engine์์ ์ ๊ณตํ๋ ์ฌ์ ์ ์๋ GPU ๋จธ์ ์ ์ข ๋ฅ์ ๊ฐ๊ฒฉ์ด๋ค.
๊ฐ๊ฒฉ ์ธก์ ์ ๊ธฐ์ค์ ์์์ ํํ์์ด๋ค.
BASIC๊ณผ STANDARD_1, PREMIUM_1์ ๊ฒฝ์ฐ CPU ๋จธ์ ์ด๋ค.
๊ทธ ์๋ BASIC_GPU์ NVIDIA Tesla K80์ ์ฌ์ฉํ ์ ์๋ ๋จธ์ ์ด๋ค.
์ฆ, ์ฐ๋ฆฌ๋ K80 GPU๋ฅผ ์๊ฐ ๋น ์ฝ 1.36$์ ์ด์ฉํ ์ ์๋ ๊ฒ์ด๋ค.
์ฌ๋ฌ๊ฐ์ K80 GPU ํน์ NVIDIA Tesla P100, NVIDIA Tesla V100์ ์ฌ์ฉํ ์๋ ์์ง๋ง,
์ฐ์ ํ๋์ K80๋ถํฐ ๋ค๋ฃจ์ด๋ณด๋๋ก ํ์.
์ด์ ์ ์ฌ์ฉํ๋ ๋ช ๋ น์ด๋ฅผ ๊ธฐ์ตํด๋ณด์.
gcloud ml-engine ...
์ด๋ฏธ ๋์น ์ฑ ์ฌ๋๋ ์๊ฒ ์ง๋ง -- ๋ค์ ๋ถ๋ ๋ช ๋ น์ด๋ ์ต์ ๊ณผ ๋น์ทํ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ์ปดํจํ ๋จธ์ ์ ์ต์ ์ผ๋ก ๋ฃ์ด์ค ์ ์๋ค.
๋ค์ --scale-tier=basic_gpu์ ์ ์ผ๋ฉด GPU ์ฌ์ฉ ์ธํ ์ ๋๋ ๊ฒ์ด๋ค.
์คํ์ ์ํค๋ฉด ์๋์ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ๋ณผ ์ ์์ ๊ฒ์ด๋ค.
์ด์ ml engine์ runtime version๊ณผ Python version์ ์ ํํด๋ณด์.
https://cloud.google.com/ml-engine/docs/tensorflow/runtime-version-list
์์ ๋งํฌ๋ ml engine์ runtime version๊ณผ version์ ๋ฐ๋ฅธ ์ง์ํ๋ ํจํค์ง
๊ทธ๋ฆฌ๊ณ ํ์ด์ฌ ๋ฒ์ ์ ์ ์ ์๋ค.
18๋ 11์ 10์ผ ๊ธฐ์ค ๊ฐ์ฅ ์ต์ ๋ฒ์ ์ 1.10๋ฒ์ ์ด๋ฉฐ,
์ต์ ์ ์ค์ ํ์ง ์์ผ๋ฉด ๋ํดํธ ๊ฐ์ผ๋ก 1.0 ๋ฒ์ ์ผ๋ก ์คํ๋๋ค.
ํ์ด์ฌ 3.5์ ๊ฒฝ์ฐ 1.4๋ฒ์ ์ด์์ ๊ฒฝ์ฐ๋ง ๋์์ด ๊ฐ๋ฅํ๋ค.
๋ํ ๋ฐํ์ ๋ฒ์ ์ ๋ฐ๋ผ ์คํ ๊ฐ๋ฅํ ํ ์ํ๋ก์ฐ์ ๋ฒ์ ์ด ๋ค๋ฅด๋
์์ ์ด ํ์ํ ๋ฒ์ ์ ์ ํํ๋๋ก ํ์.
์์ ์ปดํจํ ๋จธ์ ์ ํ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก -- ๋ฅผ ๋ถํ์ ๋ฐํ์ ๋ฒ์ ์ ์ค์ ํด์ฃผ๊ณ ,
ํ์ด์ฌ 3 ์ ์ ์ผ ๊ฒฝ์ฐ ํ์์ ๊ฐ์ด ๋ฐ๋ก ์ค์ ์ ์ ์ด์ฃผ์.
gcloud ml-engine jobs submit test_bundle --package-path=./ --module-name=test.test --staging-bucket=gs://sdh-satellite --scale-tier=basic_gpu --python-version=3.5 --runtime-version=1.10
์์ ๊ฐ์ด ์ ์ด์ฃผ๋ฉด ์ฐ๋ฆฌ๋ ์ด์ GPU๋ฅผ ์ฌ์ฉํ๋ฉด์ ํ์ด์ฌ 3.5๋ฒ์ ๊ณผ
ml engine 1.10์์ ์ง์ํ๋ ํจํค์ง๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
์ด๋ฏธ ์์ ๊ธฐ๋ณธ์ ์ธ ํํ ๋ฆฌ์ผ์ ์คํ์์ผ๋ณธ ์ฌ๋์ ์ ์ ์๊ฒ ์ง๋ง
gcloud ml-engine jobs stream-logs job-name ์ด์ธ์
gcloud ml-engine jobs describe job-name ์ด๋ผ๋ ๋ช ๋ น์ด๋ฅผ ๋ณผ ์ ์๋ค.
jobs describe ๋ช ๋ น์ด๋ฅผ ์คํ์ํค๋ฉด ์์ ์ job์ ๋ํ ์ ๋ณด๋ฅผ ๋ณผ ์ ์๋ค.
์๋ ์ฌ์ง์ ์ฐธ๊ณ ํ์.















