機械学習をする方法は大きく分けて2通りあります。
1つ目はAWSやGCPといったクラウドサービスを使ってJupyter notebookを開き、機械学習をする方法、2つ目はローカルのパソコンでJupyter notebookやJupyterLabの環境を構築し、機械学習をする方法です。
1つ目だと一番便利なのはAWS Sagemakerです。Sagemakerを使うと細かい設定などなしにすぐに機械学習を始めることができます。便利なのはいいのですが、料金がかかる、あとは途中離席したときにkernelがシャットダウンしてしまっていて、また1からkernelを起動、コード実行しないといけないことがある、といったいくつかの欠点もあります。また、Google collboratoryなども有名ですが、これも同様にkernelがシャットダウンしてしまうことが多くあります。
そこで、今日はローカルのパソコンでJupyterLabの環境を構築する方法について見ていきます。
この記事の前提条件
mac bookを持っていること(私の環境はCatalina10.15.6です)
手元のmac book (air or pro)のメモリができれば4GB以上空いていること
これまでにsagemakerやcollaboratoryでkaggleのタイタニックコンペやirisの分類プログラム程度は書いたことがある人
この記事で得られること
手元のmac bookでいつでもどこでも機械学習ができるようになるので、機械学習のスキルが大幅にアップすることでしょう!
途中離席しても、スリープ状態のまま一晩充電しても、kernelが止まることはありません。いつでも直前のコードの続きから作業を再開することができます。
Dockerの基本的な動かし方も習得することができます。
手順
1、Dockerをインストールして起動する
2、DockerのコマンドでJupyterLabを起動する
Dockerをインストールする(mac)
この記事が役に立ちます。
まずは公式サイトにアカウントを作ってログインし、Docker Desktop for macのページからインストールします。
https://hub.docker.com/editions/community/docker-ce-desktop-mac
「Get Docker」をクリックして、あとは指示に従ってインストールしていきます。
Dockerが正しくインストールされているか確認します。
docker version
このように表示されたらOKです。
Dockerfileを作成する
以下のコードをコピーしてDockerfileを作成してください。
FROM continuumio/anaconda3:2019.10
RUN pip install --upgrade pip && \
pip install autopep8 && \
pip install Keras && \
pip install tensorflow
WORKDIR /workdir
EXPOSE 8888
ENTRYPOINT ["jupyter-lab", "--ip=0.0.0.0", "--port=8888", "--no-browser", "--allow-root", "--NotebookApp.token=''"]
CMD ["--notebook-dir=/workdir"]
Dcokerfileには拡張子はつけません。
Dockerイメージをビルドする
Dockerfileが作成できたら、下記コマンドを打ちこみ、Dockerイメージをビルドします。
docker image build -t docker-anaconda .
イメージがビルドできたら、下記コマンドからDockerコンテナを実行します。
docker run -it -p 8888:8888 --rm --mount type=bind,src=`pwd`,dst=/workdir docker-anaconda
--mountというコマンドで、Docker内で作成したファイルをローカルのフォルダ上のファイルに自動でコピーしてくれます。
ローカルを一度閉じて再度Dockerを起動する場合でもデータはきちんと反映されますので、安心です。
以下の様に表示されたら成功です!