Я смог успешно выполнить упомянутое вами руководство с некоторыми изменениями на этом пути.
Я упомяну все шаги, хотя вы сделали его наполовину, как упомянули.
Первое из Все они создают Cloud Storage Bucket для задания:
gsutil mb -l europe-north1 gs://keras-cloud-tutorial
Чтобы ответить на ваш вопрос о том, где вы должны писать эти команды, зависит от того, где вы хотите хранить файлы, которые вы будете загружать с GitHub. В уроке, который вы опубликовали, писатель использует свой компьютер для запуска команд, поэтому он инициализирует команду gcloud с gcloud init
. Однако вы также можете отправить задание из Cloud Shell, если загрузите туда необходимые файлы. Единственные файлы, которые нам нужны из репозитория , - это папка trainer
и файл setup.py
. Итак, если мы поместим их в папку с именем keras-cloud-tutorial
, у нас будет такая файловая структура:
keras-cloud-tutorial/
├── setup.py
└── trainer
├── __init__.py
├── cloudml-gpu.yaml
└── cnn_with_keras.py
Теперь возможной причиной ошибки ImportError: No module named eager
является то, что вы могли изменить runtimeVersion
внутри файла cloudml-gpu.yaml
. Как мы можем прочитать здесь , eager
был введен в Tensorflow 1.5. Если вы указали более раннюю версию, вероятно, возникнет эта ошибка. Таким образом, структура cloudml-gpu.yaml
должна быть такой:
trainingInput:
scaleTier: CUSTOM
# standard_gpu provides 1 GPU. Change to complex_model_m_gpu for 4 GPUs
masterType: standard_gpu
runtimeVersion: "1.5"
Примечание: "standard_gpu" - это устаревший тип машины .
Кроме того, файл setup.py
должен выглядеть следующим образом:
from setuptools import setup, find_packages
setup(name='trainer',
version='0.1',
packages=find_packages(),
description='Example on how to run keras on gcloud ml-engine',
author='Username',
author_email='user@gmail.com',
install_requires=[
'keras==2.1.5',
'h5py'
],
zip_safe=False)
Внимание: Как видите, я указал, что хочу версию 2.1.5
из keras
. Это потому, что если я этого не сделаю, будет использована последняя версия, в которой есть проблемы с совместимостью с версиями Tensorflow ранее 2.0
.
Если все настроено, вы можете отправить задание, выполнив следующую команду в папке keras-cloud-tutorial
:
gcloud ai-platform jobs submit training test_job --module-name=trainer.cnn_with_keras --package-path=./trainer --job-dir=gs://keras-cloud-tutorial --region=europe-west1 --config=trainer/cloudml-gpu.yaml
Примечание: я использовал gcloud ai-platform
вместо gcloud ml-engine
команда, хотя оба будут работать. Однако, в какой-то момент в будущем gcloud ml-engine
станет устаревшим.
Внимание: Будьте внимательны при выборе региона, в котором будет представлено задание. Некоторые регионы не поддерживают графические процессоры и выдают ошибку, если выбраны. Например, если в моей команде я установил параметр region
на europe-north1
вместо europe-west1
, я получу следующую ошибку:
ОШИБКА: (gcloud.ai-platform.jobs .submit.training) RESOURCE_EXHAUSTED: Ошибка квоты для проекта. Запрос на 1 ускоритель K80 превышает допустимый максимум 0 K80, 0 P100, 0 P4, 0 T4, 0 TPU_V2, 0 TPU_V3, 0 V100. Чтобы узнать больше о квоте Cloud ML Engine, см. https://cloud.google.com/ml-engine/quotas. - '@type': type.googleapis.com/google.rpc.QuotaFailure нарушения: - описание: Запрос на 1 ускорителя K80 превышает допустимый максимум 0 K80, 0 P100, 0 P4, 0 T4, 0 TPU_V2 , 0 TPU_V3, 0 V100. subject:
Подробнее об особенностях каждого региона можно узнать здесь и здесь .
РЕДАКТИРОВАТЬ:
После завершения учебного задания в корзине должно быть 3 папки, которые вы указали: logs/
, model/
и packages/
. Модель сохраняется в папке model/
и файле .h5
. Имейте в виду, что если вы задаете указанную папку c для места назначения, вы должны включить '/' в конце. Например, вы должны установить gs://my-bucket/output/
вместо gs://mybucket/output
. Если вы сделаете последнее, вы получите папки output
, outputlogs
и outputmodel
. Внутри output
должно быть packages
. Ссылка на страницу работы должна указывать на папку output
, поэтому обязательно проверьте и остальную часть корзины!
Кроме того, на странице задания AI-Platform вы сможете увидеть информацию об использовании CPU
, GPU
и Network
:
Кроме того, я хотел бы уточнить кое-что, поскольку я увидел, что вы отправили несколько связанных вопросов в качестве ответа:
Ваша локальная среда, либо ваша личная мама c, либо Cloud Shell не имеет ничего общего с фактической тренировочной работой. Вам не нужно устанавливать какой-либо указанный c пакет или фреймворк локально. Вам просто нужно установить Google Cloud SDK (в Cloud Shell, конечно, он уже установлен) для запуска соответствующих команд gcloud
и gsutil
. Вы можете прочитать больше о том, как именно учебные задания на AI-Platform работают здесь .
Я надеюсь, что вы найдете мой ответ полезным.