-
자 초심으로 돌아가서 생각해보자..ml engine을 쓰는 이유를 ... 이 포스팅 할때 나는 분명 엠엘엔진으로 텐써코드를 돌릴 수 있다는것을 알았다.
근데 왜 또 서빙을 하려했는가? 이렇게 갑자기 회의를 하다가 깨닳음을 얻고 초심으로 돌아가서 오늘 밤에는 엠엘엔진으로 모델을 생성하기로 마음먹었다. 공식사이트에 가서 다시 글을 보았다. 처음 봤을때 온통 무슨말인지 하나도 몰랐었는데 다시보니 이제 좀 많이 알 것 같다.
1.로컬에서 코드를 테스트한다.
방법은 아래와 같다. 붉은색은 필수
gcloud ml-engine local train \
--module-name trainer.task \
--package-path trainer/ \
-- \
--train-files $TRAIN_DATA \
--eval-files $EVAL_DATA \
--train-steps 1000 \
--job-dir $MODEL_DIR \
--eval-steps 100-module-name 은 실제로 텐서플로코드의 이름이고 그래서 '코드가 위치한 폴더.파일이름' 이렇게 지정
-package-path는 위에서 말한 코드가 위치한 폴더
-그다음에 있는 \ 는 안해주면 train-files 명령어를 인식하질 못한다 왜그런진모루겟지만..코드상에서 그렇게 파싱하게 했나보다
-그다음 값들은 직관적으로..알수 있다.. job_dir은 트레이닝 하는 중에 저장해야될 결과물을 저장하는 폴더를 지정해주면 된다.
2.테스트가 완료되었으면 클라우드에서 실행한다.
방법은 아래와 같다. 붉은색은 필수
gcloud ml-engine jobs submit training $JOB_NAME \
--job-dir $OUTPUT_PATH \
--runtime-version 1.2 \
--module-name trainer.task \--package-path trainer/ \
--region $REGION \
-- \
--train-files $TRAIN_DATA \
--eval-files $EVAL_DATA \
--train-steps 1000 \
--verbosity DEBUG다 같은 내용이다.
-jobname은 아무렇게나 지정해주면 된다. 말그대로 작업이름이다.
-region은 지역이다. 지역에 따라 가격이다르다고한다.
이제 클라우드에서 트레이닝을 할때는 버킷에서 데이터를 참조해야한다.
gsutil cp 로컬데이터 gs://$BUCKET_NAME/data/데이터.json
와 같은 방식으로 명령어를 입력하면 로컬데이터를 클라우드에 업로드하여 사용할 수 있다. (그냥 ui에서 끌어다가 넣어도 들어간다)
3. 이렇게해서 모든 작업이 완료되면 버전을 생성한다.
gcloud ml-engine versions create v1 \
--model $MODEL_NAME \
--origin $MODEL_BINARIES \
--runtime-version 1.2bodel_binaries는 아래와 같다.
Find a directory named
$OUTPUT_PATH/export/Servo/<timestamp>
and copy this directory path (without the : at the end) and set the environment variableMODEL_BINARIES
to its value. For example:MODEL_BINARIES=gs://$BUCKET_NAME/census_dist_1/export/Servo/1487877383942/
말그대로 서빙된 모델을 입력하는것같다. (내가 로컬에서 한것과 비유하자면 pb와 variable있는 폴더를 설정해주는거겠지)
4.예측을 시행해본다.
방법은 아래와같다.
gcloud ml-engine predict \
--model $MODEL_NAME \
--version v1 \
--json-instances \
../test.json이렇게 다시한번 공식문서를 보니 이제는 좀 이해가 된다.
'2017년 > machine learning' 카테고리의 다른 글
머신러닝 기초 (0) 2017.10.31 텐서플로우의 행렬 ,shape에 대해/. (0) 2017.09.18 ml엔진 공부 (0) 2017.09.11 텐서플로우 서빙에 대해 (0) 2017.09.05 텐서플로우의 그래프,세션,자료형 (0) 2017.09.02