Google Machine Learning Engine에서 물체 탐지 훈련

나는 얼굴 검측기로 은이가 직접 만든 것을 배웠다Google Machine Learning Engine.
다음은 집행 절차와 비용 등을 총괄한다.
github
  • https://github.com/k-yamada/tf-face-detector
  • 주의 사항
  • GPU의 유효한 영역을 지정하십시오(참조: GPU 요청이 유효한 시스템
  • 최신 tensorflow/models인 경우 장애가 발생할 수 있으므로 사용하지 마십시오.
  • 1. 프로젝트 설정
    git clonehttps://github.com/k-yamada/tf-face-detector로 설정하십시오.
    git clone https://github.com/k-yamada/tf-face-detector.git
    cd tf-face-detector
    
    virtualenv --system-site-packages ~/tf-face-detector
    source ~/tf-face-detector/bin/activate
    git submodule update --init
    pip install -r requirements.txt
    
    2. Cloud Plaatform Constore 항목 작성 및 설정
  • 참조: 명령줄을 사용하여 빠른 시작
  • 상기 내용을 참고하여 프로젝트를 제작하고 필요한 설비를 설치하십시오.
    프로젝트 이름은 "tf-face-detector"입니다.
    3. 포장
  • 참조: Packaging
  • 포장
    cd models
    protoc object_detection/protos/*.proto --python_out=.
    python setup.py sdist
    (cd slim && python setup.py sdist)
    
    4. 모델 트레이닝 및 배치 예측 수행 중 데이터를 읽고 쓰기 위한 Google Cloud Storage 통 만들기
  • 참조: Cloud Storage 구간 설정
  • PROJECT_ID=$(gcloud config list project --format "value(core.project)")
    BUCKET_NAME=${PROJECT_ID}-mlengine2
    REGION=asia-east1
    # バケットを作成
    gsutil mb -l $REGION gs://$BUCKET_NAME
    
    5. Cloud Storage 통에 데이터 파일 업로드
    gsutil을 사용하여 데이터 디렉토리를 Cloud Storage 통에 복제합니다.
    # TODO: data/fddbはコピーする必要がないので、除外する
    gsutil cp -r data gs://$BUCKET_NAME/data
    
    6. Cloud Storage 통에 config 파일 업로드
    perl -pe "s|PATH_TO_BE_CONFIGURED|gs://$BUCKET_NAME/data|g" ./ssd_inception_v2_fddb.config.base > ssd_inception_v2_fddb.config
    gsutil cp -r ssd_inception_v2_fddb.config gs://$BUCKET_NAME/ssd_inception_v2_fddb.config
    
    7. 구름 위에서 단일 실례 훈련
    분산 훈련을 하기 전에 먼저 단일 실례에서 훈련을 하고 동작을 확인한다.
  • 참조: 구름 속에서 하나의 실례를 집행하는 훈련원
  • JOB_NAME=object_detection_`date +%Y%m%dT%I%M%S`
    TRAIN_DIR=${BUCKET_NAME}/train
    OUTPUT_PATH=gs://$BUCKET_NAME/$JOB_NAME
    HPTUNING_CONFIG=./hptuning_config.yaml
    gcloud ml-engine jobs submit training $JOB_NAME \
        --runtime-version 1.2 \
        --job-dir $OUTPUT_PATH \
        --packages models/dist/object_detection-0.1.tar.gz,models/slim/dist/slim-0.1.tar.gz \
        --module-name object_detection.train \
        --region $REGION \
        -- \
        --train_dir=${OUTPUT_PATH}/train \
        --pipeline_config_path=gs://${BUCKET_NAME}/ssd_inception_v2_fddb.config \
        --train-steps 1000 \
        --verbosity DEBUG
    
    8.구름으로 분산훈련
  • 참조1: Running a Multiworker Training Job
  • 참조2: 구름으로 분산 훈련을 하다
  • JOB_NAME=object_detection_`date +%Y%m%dT%I%M%S`
    TRAIN_DIR=${BUCKET_NAME}/train
    OUTPUT_PATH=gs://$BUCKET_NAME/$JOB_NAME
    HPTUNING_CONFIG=./hptuning_config.yaml
    gcloud ml-engine jobs submit training $JOB_NAME \
        --runtime-version 1.2 \
        --job-dir $OUTPUT_PATH \
        --packages models/dist/object_detection-0.1.tar.gz,models/slim/dist/slim-0.1.tar.gz \
        --module-name object_detection.train \
        --region $REGION \
        --config $HPTUNING_CONFIG \
        -- \
        --train_dir=${OUTPUT_PATH}/train \
        --pipeline_config_path=gs://${BUCKET_NAME}/ssd_inception_v2_fddb.config
    
    tensorboard 시작
    tensorboard --logdir=$OUTPUT_PATH
    

    약 35000보를 돌렸지만 토탈리스는 10000보마다 수렴했다.
    9. Export graph
    export CHECKPOINT_NUMBER=<target checkpoint number>
    gsutil cp ${OUTPUT_PATH}/train/model.ckpt-${CHECKPOINT_NUMBER}.data-00000-of-00001 train/
    gsutil cp ${OUTPUT_PATH}/train/model.ckpt-${CHECKPOINT_NUMBER}.index train/
    gsutil cp ${OUTPUT_PATH}/train/model.ckpt-${CHECKPOINT_NUMBER}.meta train/
    
    export PYTHONPATH=${PYTHONPATH}:$(pwd)/models:$(pwd)/models/slim
    export EXPORT_DIRECTORY=/tmp
    rm -rf $EXPORT_DIRECTORY/saved_model
    python models/object_detection/export_inference_graph.py \
        --input_type=encoded_image_string_tensor \
        --pipeline_config_path=ssd_inception_v2_fddb.config \
        --trained_checkpoint_prefix=train/model.ckpt-${CHECKPOINT_NUMBER} \
        --output_directory=${EXPORT_DIRECTORY}
    
    검사 결과

    학습 데이터가 부족해서 그런 것 같은데 눈 위치가 틀린 경우도 있어요.

    공부에 드는 시간과 비용
  • 학습 단계: 약 35000
  • 분산 학습자 수: 9
  • 실행 시간: 1시간 30분
  • 소모된 ML 유닛: 39.37
  • 비용: 25.26달러(2828엔)
  • 비용의 계산 공식
    참조: 비용
    ML 트레이닝 단원은 시간당 $0.54.
    이번에 소비한 ML 단원은 39.37이기 때문에 소비한 비용은
    $0.54 x 39.37MLユニット = $25.26 = 2828円
    
    .
    이 밖에도 클라우드 스토어 이용료는 지불해야 하지만 수십엔 정도만 필요하기 때문에 포함되지 않는다.

    좋은 웹페이지 즐겨찾기