Я отправляю задание на обучение на облачной платформе Google, используя
gcloud ai-platform jobs submit training $JOB_NAME
--scale-tier basic
--package-path $TRAINING_PACKAGE_PATH
--module-name $MAIN_TRAINER_MODULE
--job-dir $JOB_DIR
--runtime-version $RUNTIME_VERSION
--python-version $PYTHON_VERSION
--region $REGION
Мой тренировочный код чем-то похож на тот, что в онлайн-уроке cloudml-образцы. Из руководства Упаковка обучающего приложения я увидел, что вы можете передать параметры в задание обучения, добавив
-- \
--user_first_arg=first_arg_value \
--user_second_arg=second_arg_value
Но везде я мог найти, как читать параметры из кода обучения. Какие-либо предложения? Спасибо
да но как? есть ли где-нибудь пример кода, который я могу посмотреть? какова процедура чтения флагов в программе обучения?
Пожалуйста, взгляните на этот новый репо.
У вас есть task.py
, который считывает параметры из команды gcloud
которые передают входные данные в model.py
, который существует в файле это.
отлично, это похоже на чтение обычных флагов из скрипта, я думал, что это не сработает.
В моем случае он фактически не может прочитать аргументы cmd. Не уверен, почему это происходит.
Я знаю, что, вероятно, неправильно использовал свой dockerfile, но для принятия пользовательских аргументов мой запрос gcloud выглядел так:
gcloud ai-platform jobs submit training $JOB_NAME /
--region $REGION /
--master-image-uri $IMAGE_URI /
-- /
app.py --user_first_arg=first_arg_value
Докерфайл
...
WORKDIR /app
COPY . /app
ENTRYPOINT ["python"]
CMD ["app.py"]
app.py
def get_args():
parser = argparse.ArgumentParser()
parser.add_argument(
'--user_first_arg',
default=0)
args = parser.parse_args()
return args
def main():
args = get_args()
print(args.user_first_arg)
...
Вам необходимо соответствующим образом определить флаги в вашей программе обучения. Служба будет передавать пользовательские аргументы в качестве флагов вашей программе обучения.