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, и мое мнение остается моим собственным.