この記事では、Docker関連の一連の記事を続け、機械学習用のUbuntu20.04LTSベースのDockerコンテナーを作成する方法を示します。 Python 3、Jupyter、Keras、Tensorflow、TensorBoard、Pandas、Sklearn、Matplotlib、Seaborn、pyyaml、h5pyの環境にインストールします。 Dockerイメージの構築時間を除いて、3分で個人のML環境を準備します!
2020年の更新
コンテナをUbuntu20.04LTSベースに更新し、Dockerビルドプロセスを高速化しました。現在、OpenCVをソースから構築するのではなく、 apt
からインストールしています。 。
機械学習(ML)の学習を開始するとき、環境のセットアップはよくある質問です。この記事では、快適なスタートを切るための次のフレームワークを含む、独自のDockerコンテナを作成する方法を紹介します。
- Python 3
- Jupyter
- Keras
- テンソルフロー
- TensorBoard
- パンダ
- Sklearn
- Matplotlib
- シーボーン
- pyyaml
- h5py
これらは、データサイエンスで広く使用されているPythonフレームワークのトップ10であり、それらのほとんどはインターネット上のハウツー記事にあります。次の記事(Anacondaに基づいてPython Data Science Dockerコンテナーを構築する方法)では、Anacondaディストリビューションの上に同じイメージを構築する方法を示します。
必要なのは、システムにインストールされているDockerとテキストエディタだけです。
最終的なプロジェクト構造は次のとおりです。
$ tree -a python_data_science_container $python_data_science_container├──Dockerfile├──conf│└──.jupyter│└──jupyter_notebook_config.py└──run_jupyter.sh2ディレクトリ、3ファイル
Dockerfile
プロジェクトフォルダとファイル名を作成するだけです。
Dockerfile
内部:$ mkdir python_data_science_container $ cd python_data_science_container $ vim Dockerfile
その後、次のコンテンツを
Dockerfile
に配置します :FROM ubuntu:20.04MAINTAINER "Andrei Maksimov" ENV DEBIAN_FRONTEND noninteractiveRUN apt-get update &&apt-get install -y \ libopencv-dev \ python3-pip \ python3-opencv &&\ rm -rf / var / lib / apt / lists / * RUN pip3 install tensorflow &&\ pip3 install numpy \ pandas \ sklearn \ matplotlib \ seaborn \ jupyter \ pyyaml \ h5py &&\ pip3 install keras --no-deps &&\ pip3 install opencv-python &&\ pip3 install imutilsRUN ["mkdir"、 "notebooks"] COPY conf / .jupyter /root/.jupyterCOPY run_jupyter.sh /#JupyterおよびTensorboardポートEXPOSE 8888 6006#このマウントされたディレクトリにノートブックを保存するVOLUME / notesbooksCMD ["/run_jupyter.sh"] コード>
個人のデータサイエンスコンテナ環境を作成するために使用するGitHubで、自分のDockerfileの最新の例をいつでも見つけることができます(Docker Hubでも無料で入手できます)。
Jupyter構成
コンテナーとそのコンポーネントを宣言したらすぐに、Jupyterの構成を準備します。次のコンテンツを含むファイルjupyter_notebook_config.pyを作成します。
#Get the config objectc =get_config()#in-line figure when using Matplotlibc.IPKernelApp.pylab ='inline' c.NotebookApp.ip ='*' c.NotebookApp.allow_remote_access =True#do not Notebooksc.NotebookApp.open_browser =False#トークンなしを使用する場合、デフォルトでブラウザウィンドウを開きます。常にsshtunnelc.NotebookApp.token='' c.NotebookApp.notebook_dir ='/notebooks'でjupyterを使用する#Dockerコンテナ内のrootユーザーからJupyterを実行できるようにするc.NotebookApp.allow_root =True
Dockerfile
から推測できるように 、/root/.jupyter/
に配置します コンテナビルドプロセス中のフォルダ。起動スクリプトの作成 最後に行う必要があるのは、スクリプト
run_jupyter.sh
を作成することです。 、起動プロセス中にコンテナ内でJupiterサーバーを起動します。次のコンテンツでを作成します:#!/ usr / bin /enbbashjupyterノートブック"$@"
そして、このファイルを実行可能にします:
$ chmod + x run_jupyter.sh
このファイルは、新しいファイルを起動するたびに、デフォルトでコンテナ内で起動されます。
コンテナイメージの作成 最終段階–コンテナの作成。次のコマンドを実行して、プロジェクトディレクトリからDockerコンテナをビルドします。
$ docker build -f Dockerfile-tpython_data_science_container。
Dockerは、ビルドプロセス中に必要なすべてのライブラリとフレームワークをコンテナイメージ内にインストールし、使用できるようにします。
実行中のコンテナ これで、動作するコンテナができました。それを開始します。プロジェクトのフォルダ内にフォルダを作成します。このフォルダには、プロジェクトのソースコードを含むすべてのJupyterNotebookが保存されます。
$mkdirノートブック
そして、次のコマンドでコンテナを起動します:
$ docker run -it -p 8888:8888 \ -p 6006:6006 \ -d \ -v $(pwd)/ notesbooks:/ notesbooks \ python_data_science_container
コンテナを起動し、このコマンドを実行した場所に応じて、ローカルコンピュータまたはサーバーのポート6006でJupyterをポート8888とTensorflowダッシュボードに公開します。
このコンテナは、ローカル開発の目的でのみ作成されていることに注意してください。私 このコンテナ内のJupyterの認証を削除したため、誰でもポート8888または6006に接続して、Pythonの原因コードを実行できます。
実用的なソリューションを探しているだけの場合 独自のコンテナを作成して維持する必要がなく、前述のコンポーネントで十分な場合は、私が通常更新する個人用コンテナを自由に使用してください。
$ docker run -it -p 8888:8888 \ -p 6006:6006 \ -d \ -v $(pwd)/ notesbooks:/ notesbooks \ amaksimov / python_data_science
この記事がお役に立てば幸いです。記事が気に入ったら、好きなソーシャルメディアを使って再投稿してください。またね!
Docker