Sagemaker notebook instanceでユーザ環境を作る
いつ使う
SageMakerでnotebook instanceのkernelを選択したときに、python3.6、ちょっと古いなぁ、python3.8とか使いたいなぁと思った人向け。
Notebookでterminalを開く
下記コマンドを利用して、conda createする。
例えばpython3.8で作る場合はこんな感じ。
これはEBSボリュームにPython環境を作っており、EC2の再起動で消えないようにするためである。
conda create --prefix /home/ec2-user/SageMaker/kernels/<USER_ENV> python=3.8 ipykernel source activate /home/ec2-user/SageMaker/kernels/<USER_ENV> python -m ipykernel install --user --name <USER_ENV> --display-name <USER_ENV> conda deactivate
このコマンドを叩いたあとに、JupyterのKernelに自身の環境が追加されたことを確認する。
永続化
Sagemakerのインスタンスの再起動で環境の登録が消えてしまうので、起動時に追加されるようにライフサイクル設定を実行する。
一度インスタンスを停止して、Sagemakerのマネコンから、「ライフサイクル設定」を選択。
スクリプトとして下記を入力する。
#!/bin/bash sudo -u ec2-user -i <<'EOF' if [ -d "/home/ec2-user/SageMaker/kernels" ]; then for env in /home/ec2-user/SageMaker/kernels/*; do source activate $env python -m ipykernel install --user --name $(basename "$env") --display-name "$(basename "$env")" conda deactivate done fi EOF
ノートブックインスタンスの「設定の更新」から、作成したライフサイクル設定を選択すればOK。
次回起動時に登録されているかを確認しておわり。
conda環境の整え方
jupyterの画面で! conda install
とかやるのはめんどくさいので、基本的にはTerminalを起動して上記で紹介したコマンド
source activate /home/ec2-user/SageMaker/kernels/<USER_ENV> conda install ****
という感じでやるとラク。