У меня есть проект в Amazon-Sage-Maker. Для этого мне нужно удалить определенные пакеты и установить другие в терминал. Но каждый раз, когда я закрываю или останавливаю экземпляр, мне приходится идти к терминалу и снова выполнять все установки. Почему это происходит?
Пакет, с которым я экспериментирую с этой проблемой, - psycopg2:
import psycopg2
Выдает предупреждение, предлагающее удалить его и установить двоичный файл psycopg2. Итак, я открываю терминал и кодирую:
pip uninstall psycopg2
Затем в записной книжке я кодирую:
import psycopg2
И нет проблем, но если я закрою и снова открою экземпляр, я получаю ту же ошибку, и мне придется снова пройти весь процесс.
Я не представлял себе докеров. Как мне его создать?





@anitasp, вы должны создать образ Docker, выполнив следующие действия:
Обязательно настройте разрешения своей политики ролей выполнения SageMaker в AWS IAM (помимо S3), а также в AmazonEC2ContainerServiceFullAccess, AmazonEC2ContainerRegistryFullAccess и AmazonSageMakerFullAccess.
Создайте и запустите экземпляр в SageMaker и откройте блокнот. Клонируйте показанную здесь структуру каталогов в своем экземпляре: https://github.com/RubensZimbres/Repo-2018/tree/master/AWS%20SageMaker/Jupyter-Folder
Внутри Jupyter запустите:
! sudo service docker start
! sudo usermod -a -G docker ec2-user
! docker info
! chmod +x decision_trees/train
! chmod +x decision_trees/serve
! aws ecr create-repository --repository-name decision-trees
! aws ecr get-login --no-include-email
Скопируйте и вставьте логин в командную строку ниже
! docker login -u abc -p abc12345 http://abc123
Бегать
! docker build -t decision-trees .
! docker tag decision-trees your_aws_account_id.dkr.ecr.us-east-1.amazonaws.com/decision-trees:latest
! docker push your_aws_account_id.dkr.ecr.us-east-1.amazonaws.com/decision-trees:latest
! aws ecs register-task-definition --cli-input-json file://decision-trees-task-def.json
И адаптироваться к вашим потребностям в соответствии с выбранным вами алгоритмом. Вам понадобится Dockerfile, hyperparameters.json и т. д.
Документированный проект находится здесь: https://github.com/RubensZimbres/Repo-2018/tree/master/AWS%20SageMaker
Спасибо за использование SageMaker. Установленные пакеты не сохраняются при перезапуске экземпляра Notebook. Чтобы не устанавливать его каждый раз вручную, вы можете создать конфигурацию жизненного цикла, которая устанавливает ваши пакеты и прикрепляет ее к вашему экземпляру Notebook. Сценарий в Lifecycle Config будет запускаться каждый раз при перезапуске экземпляра Notebook.
Для получения дополнительной информации о том, как использовать Lifecycle Config, вы можете проверить: https://aws.amazon.com/blogs/machine-learning/customize-your-amazon-sagemaker-notebook-instances-with-lifecycle-configurations-and-the-option-to-disable-internet-access/
По умолчанию пакеты python, установленные из экземпляра Notebook, не сохраняются в следующем сеансе экземпляра Notebook. Одно из решений этой проблемы:
1) Создайте (или клонируйте из текущего conda env) новую среду conda в /home/ec2-user/SageMaker, которая сохраняется между сеансами. Например:
conda create --prefix /home/ec2-user/SageMaker/envs/custom-environment --clone tensorflow_p36
2) Затем создайте новую конфигурацию жизненного цикла для «стартовой записной книжки» со следующим содержанием:
#!/bin/bash
sudo -u ec2-user -i <<'EOF'
ln -s /home/ec2-user/SageMaker/envs/custom-environment /home/ec2-user/anaconda3/envs/custom-environment
EOF
3) Наконец, прикрепите конфигурацию жизненного цикла к экземпляру ноутбука.
Теперь, когда вы перезапустите свой экземпляр Notebook, ваша пользовательская среда будет обнаружена conda и Jupyter. Любые новые пакеты, которые вы устанавливаете в эту среду, будут сохраняться между сеансами, а затем будут мягко связаны с conda при запуске.
Вы создали образ Docker?