windows+docker+anacondaで環境構築メモ

Source Code Software ComputerIT全般

SIGNATE ファンダメンタルズ分析チャレンジが開催されています。

そのチュートリアル実施にdocker+anaconda環境を要求されているのですが、docker素人すぎてチュートリアルの環境構築方法がよくわかりませんでした。

そこで、色々試して動作確認した際のメモです。(正しいのかは不明)

日本取引所グループ ファンダメンタルズ分析チャレンジ | SIGNATE - Data Science Competition

環境

windows 10 Home

チュートリアル実行環境の構築手順

  1. dockerのインストール
  2. dockerにanacondaのイメージを導入
  3. チュートリアル用データのダウンロード
  4. docker環境内でチュートリアル実行環境(jupyter)の実行
  5. 追加pythonパッケージのインストール

dockerのインストール

以下のリンクから実行ファイルをDLし、指示に従ってインストールします。

DLリンク

Docker Hub

導入の詳細な解説

Windows Home に Docker Desktop をインストール — Docker-docs-ja 19.03 ドキュメント

インストールが成功しているかは、Windows Power Shellに以下のコマンドを打ち込んで、version情報が出ているかで確認できるようです。

> docker --version

Docker version XXXXXX
Docker for Windows を始めよう — Docker-docs-ja 19.03 ドキュメント

dockerにanacondaのイメージを導入

Windows Power Shellを立ち上げ、以下のコマンドを打ち込みます。

docker pull continuumio/anaconda3:2019.03

dockerアプリのImagesタブの画面を確認すると、以下のようにcontinuumio/anaconda3が追加されます。

参考

Submitting from Runtime | SIGNATE - Data Science Competition
An introduction page of how to submit models from SIGNATE Runtime.In addition to the competitions, a lot of resourceful contents such as educational materials a...

チュートリアル用データのダウンロード

チュートリアル用データが設置されているgit hubからデータを任意の作業フォルダに展開します。

git cloneを使用しましたが、ZIPでDLしてもいいのかも

GitHub - JapanExchangeGroup/J-Quants-Tutorial: J-Quants-Tutorial
J-Quants-Tutorial. Contribute to JapanExchangeGroup/J-Quants-Tutorial development by creating an account on GitHub.

docker環境内でチュートリアル実行環境(jupyter)の実行

Windows Power Shellに以下を打ち込むとdockerコンテナが作成されます。

$(pwd)の部分をdata_dirの置いてある任意のフォルダのフォルダのパスに置き換えないとエラーが出ました。${pwd}で行ける場合もあるようです

# チュートリアルデータセットのhandsonフォルダに移動する
cd handson/

# データ配置先のディレクトリを作成
mkdir data_dir
# その後作成したhandson/data_dirに、コンペティションサイトよりデータをダウンロードし配置します。

# dockerでjupyter notebookを起動します。(初回実行時は約2GB程度コンテナイメージをダウンロードします。)
# データ配置先のディレクトリを /path/to としてマウントしています。
# 学習済みモデル提出用のディレクトリ (handson/Chapter02/archive) を /opt/ml としてマウントしています。
# jupyter notebook作業用に handson ディレクトリを /notebook としてマウントしています。
# jupyter notebook は port 8888でtokenとpasswordを空にして、vscode のjupyter pluginからアクセスできるように xsrf 対策を無効化しています。
docker run --name tutorial -v $(pwd)/data_dir:/path/to -v $(pwd)/Chapter02/archive:/opt/ml -v $(pwd):/notebook -e PYTHONPATH=/opt/ml/src -v $(pwd):/notebook -p8888:8888 --rm -it continuumio/anaconda3:2019.03 jupyter notebook --ip 0.0.0.0 --allow-root --no-browser --no-mathjax --NotebookApp.disable_check_xsrf=True  --NotebookApp.token='' --NotebookApp.password='' /notebook

J-Quants-Tutorial
(JPX)株式分析チュートリアル

ブラウザから「http://localhost:8888/」のURLにアクセスするか、dockerアプリの画面からjupyter notebookの立ち上げが可能です。

dockerアプリ画面

追加pythonパッケージのインストール

dockerアプリからCLIを立ち上げて、追加パッケージインストール用のコマンドを打ち込みます。

dockerアプリ画面

パッケージインストール

# shap用にg++とgccをインストールします
apt-get update
apt-get install -y --no-install-recommends g++ gcc

# 必要なライブラリをインストールします
pip install shap==0.37.0 slicer==0.0.3 xgboost==1.3.0.post0

以上が、チュートリアル環境構築のためのメモとなります。

後はjupyter notebookからノートブックを作成して、チュートリアルを実行できるはずです。

コンペのデータは大概ファイルサイズが大きく、読み込みに時間がかかります。

csvの場合に読み込み速度向上について記事を作成しましたので、ご参考ください。

コメント

タイトルとURLをコピーしました