1. taniyam

    Posted

    taniyam
Changes in title
+SageMakerのノートブックでPipenvを使う
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,33 @@
+## 概要
+Amazon SageMakerのノートブックインスタンスでは最初からDockerが使えたり、tensorflowやmx-netなどが入ったカーネルを選択したり特に環境構築を行わずともそれなり使える環境が簡単に用意することができ便利です。一応jupter notebookのcondaタブで環境を編集することはできますが少し面倒です。Pipenvを用いた環境をそのままノートブックインスタンスで使うことを考えます。
+
+### おさらい
+SageMakerのノートブック項の簡単な説明を行います。
+![スクリーンショット 2018-12-04 11.36.00.png](https://qiita-image-store.s3.amazonaws.com/0/287793/d30d543f-b595-ed6f-1bfa-0da588be9f09.png)
+
+### ノートブックインスタンス
+SageMakerの目玉機能?の一つです。ある程度設定されたjupyter notebook(lab)が簡単に使えるのが最大の魅力です。これ単体でも機能します。インスタンスなので当然マシンパワーを設定でき後からでも自由に強さを変更できます。また、`/home/ec2-user/SageMaker`以外の場所はインスタンス再起動時にリセットされるので注意しなければいけません。
+
+### ライフサイクル
+ノートブックインスタンスの最初の構築時または起動時に実行するスクリプトを記述でき任意のノートブックに紐付けることができる機能です。今回はこれを使って`/home/ec2-user/SageMaker`内のPipenvfileから作られる環境をインスタンスに元から入っているjupyterにカーネルとして追加します。
+
+### Git リポジトリ
+2018年11月28日に追加された新たな機能です。Gitリポジトリを指定しておき、これと紐付けたノートブックインスタンスにリポジトリをクローンするそうです。(まだ試してません)
+
+## 設定
+ライフサイクルの「ノートブックの開始」に以下を書いてノートブックインスタンスに紐付けるだけです。
+
+```sh
+#!/bin/bash
+
+set -e
+
+sudo -u ec2-user sh <<-EOS
+pip install --upgrade
+export PIPENV_VENV_IN_PROJECT="42"
+cd /home/ec2-user/SageMaker
+/home/ec2-user/anaconda3/envs/JupyterSystemEnv/bin/pip install pipenv
+/home/ec2-user/anaconda3/envs/JupyterSystemEnv/bin/pipenv install -d ipykernel
+/home/ec2-user/anaconda3/envs/JupyterSystemEnv/bin/pipenv run ipython kernel install --user --name=pipenv
+EOS
+```