Как передать дополнительные параметры (в виде dict) в пользовательский контейнер вывода sagemeker?

python-3.x #amazon-web-services #amazon-sagemaker

#python-3.x #amazon-веб-сервисы #amazon-sagemaker

Вопрос:

Статус:

  • Пользовательский контейнер создается с использованием документа doc — https://github.com/aws/amazon-sagemaker-examples/tree/master/advanced_functionality/scikit_bring_your_own
  • predict.py кодируется для размещения пользовательского сценария вывода и его хорошей работы
  • Использование classsagemaker.model.Класс Model() для прохождения обученного model.tar.gz и пользовательский образ контейнера для развертывания модели

Вызов:

  • В том же классе модели есть параметр ENV, с помощью которого мы, по-видимому, можем отправлять переменные среды в пользовательское изображение
  • Попытался передать python dict для этого, но столкнулся с трудностями при чтении этого json dict в predict.py сценарий

Кто — нибудь сталкивался с такой же трудностью ?

Комментарии:

1. зачем вам нужен dict? как насчет создания отдельной переменной среды для каждого параметра?

2. @OlivierCruchant Спасибо за ответ, я тоже это пробовал. Вот так: env = {'var1': '1'} Проблема в том, что я не вижу эту переменную внутри env и не могу ее прочитать. может быть, я что-то здесь упускаю!

3. нет, я имел в виду, почему не env={‘var1’: ‘value1’, …, ‘varN’: ‘valueN’}

4. @OlivierCruchant , у меня нет трудностей с передачей dict, я изо всех сил пытаюсь прочитать это окружение внутри контейнера вывода.

5. os.environ[‘var1’] ?

Ответ №1:

Вы можете передать свою среду dict в своей модели как:

 Model(
.
.
env= {"my_env": "my_env_value"}
.
.
)
 

SageMaker передаст окружение dict в ваш контейнер, и вы сможете получить к нему доступ в своем predict.py сценарий, например, с:

 my_env = os.environ.get('my_env',"env key not set in Model")
print(my_env)
 

Если ваш env dict был передан вашей модели, содержащей их my_env , вы получите вывод : my_env_value . Иначе вы получите env key not set in Model

Я работаю в AWS, и мое мнение остается моим собственным.