docker
コマンドが実行できる。[本に書かれている実験環境 (ソフトウェア)] Ubuntu 16.04LTS CUDA 10.1 Python 3.7.4 PyTorch 1.7.1 TorchVision 0.8.2 opencv 4.5.3.56 numpy 1.19.5 Pillow 7.0.0 matplotlib 3.4.3 timm 0.6.2
nvcr.io/nvidia/pytorch:21.03-py3 このタグのコンテナは、PyTorch 1.7.1(および対応する TorchVision など)と CUDA ライブラリが組み込まれており、NVIDIA GPU を活用するための最適化が施されています。
nvcr.io/nvidia/pytorch:21.03-py3
nVidia は CUDA をインストールした Docker Image (nvidia-docker image) コンテナを 公式サイト上で公開していて、 その使い方は" NGC コンテナー ユーザーガイド" (キャッシュ) で解説されている。
(例) 緑色の文字部分は環境に合わせて変更すること docker run --gpus all -it --rm -v local_dir:container_dir nvcr.io/nvidia/pytorch:20.10-py3:XX,XX-torchYYY-py3
割当 | コンテナ名 | ポート1 (22へ転送) | ポート2 (8888へ転送) | /root/doc マウント先 | Docker Image |
---|---|---|---|---|---|
- | vit_book | 7079 | 8089 | /home/docker/vit | nvcr.io/nvidia/pytorch:20.10-py3 |
docker run --name vit_book --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 --gpus all \ -p 7079:22 -p 8089:8888 \ -v /home/docker/vit:/root/doc \ -it nvcr.io/nvidia/pytorch:20.10-py3
Docker Host の Windows 上で動作する Ubuntu (WSL2) において、docker コマンドを用いて vit_book コンテナに接続する。
docker attach vit_book
apt-get update apt-get upgrade -y apt-get install -y openssh-server echo 'root:パスワード' | chpasswd sed -i "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/" /etc/ssh/sshd_config service ssh start
ssh -p 7079 root@133.99.41.195
apt install rsync
apt-get install libssl-dev apt-get install -y openssh
rsync -avr -e "ssh -p 7079" ch03 root@133.99.41.195:/root/doc
requirements.txt |
● Ubuntu 16.04 LTS ● CUDA 10.1 ● GPU V100 32GB ● CPU Xeon E5-2698 v4 2.20GHz ● Python 3.7.4 ● numpy 1.19.5 ● matplotlib 3.4.3 ● Pillow 7.0.0 ● opencv 4.5.3.56 ● PyTorch 1.7.1 ● Torchvision 0.8.2 ● timm 0.6.2 |
root@7c8090f3603d:~/doc/ch3# python Python 3.6.10 |Anaconda, Inc.| (default, May 8 2020, 02:54:21) [GCC 7.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> exit()
conda create -n vit_book python=3.7.4 ipykernel conda activate vit_book エラー発生 CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. To initialize your shell, run $ conda init一旦、shellを終了して、docker guest自体を終了し、再び docker guest を起動し直して、 Ubuntu から docker attach vit_book すると、conda activate vit_book は正しく動作した。Currently supported shells are: - bash - fish - tcsh - xonsh - zsh - powershell conda init bash conda acitvate vit_book やはりエラー
(base) root@7c8090f3603d:~# conda activate vit_book (vit_book) root@7c8090f3603d:~# python Python 3.7.4 (default, Aug 13 2019, 20:35:49) [GCC 7.3.0] :: Anaconda, Inc. on linux Type "help", "copyright", "credits" or "license" for more information. >>> exit()
conda install pytorch=1.7.1 torchvision=0.8.2 -c pytorch
(vit_book) root@7c8090f3603d:~# python -c 'import torch; print(torch.__version__);' 1.7.1 (vit_book) root@7c8090f3603d:~# python -c "import torch; print(torch.cuda.is_available());" True
pip install opencv-python==4.5.3.56 pip install opencv-contrib-python==4.5.3.56
pip install pillow==7.0.0
pip install matplotlib==3.4.3
pip install numpy==1.19.5
(vit_book) root@7c8090f3603d:~# pip install timm==0.6.2 ERROR: Ignored the following versions that require a different python version: 0.9.16 Requires-Python >=3.8; 1.0.10 Requires-Python >=3.8; 1.0.11 Requires-Python >=3.8; 1.0.12 Requires-Python >=3.8; 1.0.13 Requires-Python >=3.8; 1.0.14 Requires-Python >=3.8; 1.0.15 Requires-Python >=3.8; 1.0.3 Requires-Python >=3.8; 1.0.7 Requires-Python >=3.8; 1.0.8 Requires-Python >=3.8; 1.0.9 Requires-Python >=3.8 ERROR: Could not find a version that satisfies the requirement timm==0.6.2 (from versions: 0.1.1, 0.1.2, 0.1.4, 0.1.6, 0.1.8, 0.1.10, 0.1.12, 0.1.14, 0.1.16, 0.1.18, 0.1.20, 0.1.22, 0.1.24, 0.1.26, 0.1.28, 0.1.30, 0.2.1, 0.3.0, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.4.5, 0.4.9, 0.4.12, 0.5.4, 0.6.2.dev0, 0.6.5, 0.6.7, 0.6.11, 0.6.12, 0.6.13, 0.8.0.dev0, 0.8.2.dev0, 0.8.3.dev0, 0.8.6.dev0, 0.8.10.dev0, 0.8.11.dev0, 0.8.13.dev0, 0.8.15.dev0, 0.8.17.dev0, 0.8.19.dev0, 0.8.21.dev0, 0.8.23.dev0, 0.9.0, 0.9.1, 0.9.2, 0.9.5, 0.9.6, 0.9.7, 0.9.8, 0.9.9, 0.9.10, 0.9.11, 0.9.12) ERROR: No matching distribution found for timm==0.6.2
(vit_book) root@7c8090f3603d:~# pip install timm==0.6.2dev0
python position_embedding.py --model vit_tiny_16_224 --checkpoint ./ImageNet/tiny16/best_checkpoint.pth
以下、未編集
ssh -p 7077 root@133.99.41.195
ssh-keygen -R '[133.99.41.195]:7077'
ssh -p 7077 root@133.99.41.195
jupyter notebook
http://localhost:8888/?token=...(略) or http://127.0.0.1:8888/?token=...(略)
(例) jupyter が表示したURL: http://127.0.0.1:8888/?token=64b6f850fc2a1b9fb52c71b7cd3240d59870619b32a4b4e7 (変更点) IPアドレス: 127.0.0.1 (または localhost) → 133.99.41.195 ポート番号: 8888 → 8087 (アクセスするURL) http://133.99.41.195:8087/?token=64b6f850fc2a1b9fb52c71b7cd3240d59870619b32a4b4e7
jupyter notebook が異常終了したときに、しばらく(5分程度) 8888 番ポートをつかんだままになることがある。 そのような状態で jupyter notebook 再起動すると、8888番ポート以外のポート番号を使って起動し、 外部からアクセスできなくなる。しばらく(5分程度)待ってから jupyter notebook を起動すること。