ディレクトリ構成
VS CodeのDev Containerを使って開発しています。
Dockerが動く人は参考にしてください。Docker環境でない、pure-pythonの方は、Dockerfileに記載してある、ライブラリ等をインストールしてください。
この本で書かれるプロジェクトのディレクトリは以下のようになっています
project
├── .devcontainer
| ├── Dockerfile
| ├── devcontainer.json
| └── docker-compose.yml
├── source_data
├── learning_data
├── models
├── notebooks
└── "programs"
以下では環境構築に必要な.devcontainerの中身について記載します。
ベースはpytorch:22.04。
.devcontainer
Dockerfile
Dockerfile
ベースはpytorch:22.04です。
FROM nvcr.io/nvidia/pytorch:22.04-py3
ARG USERNAME=vscode
ARG USER_UID=1000
ARG USER_GID=$USER_UID
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
ENV TZ JST-9
ENV TERM xterm
RUN apt-get update \
&& groupadd --gid $USER_GID $USERNAME \
&& useradd -s /bin/bash --uid $USER_UID --gid $USER_GID -m $USERNAME \
&& apt-get install -y sudo \
&& echo $USERNAME ALL=(root) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
&& chmod 0440 /etc/sudoers.d/$USERNAME \
&& apt-get -y install locales \
&& localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
RUN apt-get -y install git
RUN pip install --upgrade pip
RUN pip install --upgrade setuptools
RUN python -m pip install requests
RUN python -m pip install numpy
RUN python -m pip install pandas
RUN python -m pip install matplotlib
RUN python -m pip install bs4
RUN python -m pip install scikit-learn
RUN python -m pip install optuna
RUN python -m pip install lightgbm
RUN python -m pip install tqdm
RUN python -m pip install timeout-decorator
RUN python -m pip install requests-html
RUN python -m pip install seaborn
RUN python -m pip install pyarrow
RUN python -m pip install numba
RUN python -m pip install selenium
RUN python -m pip install schedule
RUN python -m pip install imbalanced-learn
devcontainer.json
devcontainer.json。各自、自分が使うVS Codeのプラグイン名を"extensions":
で追記してください。
{
"name": "pist6_predict_project",
"service": "pist6_predict",
"dockerComposeFile": "docker-compose.yml",
"remoteUser": "vscode",
"workspaceFolder": "/work",
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"ms-toolsai.jupyter"
]
}
}
}
docker-compose.yml
ポート番号やサービス名、コンテナ名が他のプロジェクトと重複しないように注意してください。
version: '3'
services:
pist6_predict:
container_name: 'pist6_predict_container'
hostname: 'pist6_predict_container'
build: .
restart: always
working_dir: '/work'
tty: true
volumes:
- type: bind
source: ..
target: /work
ports:
- 8888:8888
ulimits:
memlock: -1
stack: -1
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
chrome:
image: seleniarm/standalone-chromium
shm_size: 2gb
ports:
- "4444:4444"
- "7900:7900"
あとは、VS CodeのDev Containerプラグインを入れて、コンテナーで再度開くを押せば、自動でコンテナ内で開発できます。
ちなみに筆者の計算機は
- CPU : i7-5950X
- Memory : 32GB
- GPU : GTX-1080Ti
という骨董AI計算機です。最近の計算機ならこの記事の環境は動くと思います。またGoogle Colaboratoryの無料枠でも問題ない程度の計算量だと思います。