開発環境構築 #3 Docker で PyTorch

NVIDIA Container Toolkit をインストールする


docs.nvidia.com

$ curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

$ sudo sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list

$ sudo apt-get update

$ sudo apt-get install -y nvidia-container-toolkit

# Dockerデーモンの再起動
$ sudo systemctl restart docker

# テスト
docker run --rm --gpus all nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smi


PyTorch NGC コンテナ の 場合
https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorchcatalog.ngc.nvidia.com

$ docker run --gpus all -it --rm nvcr.io/nvidia/pytorch:22.04-py3


Docker のインスタンスでテスト

$ python
Python 3.8.13 | packaged by conda-forge | (default, Mar 25 2022, 06:04:10)
[GCC 10.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> from __future__ import print_function
>>> import torch
>>> x = torch.rand(5, 3)
>>> print(x)
tensor([[0.9880, 0.3159, 0.7574],
        [0.1205, 0.4638, 0.8332],
        [0.1799, 0.0452, 0.4928],
        [0.1377, 0.9705, 0.1059],
        [0.9214, 0.8536, 0.7608]])
>>> print('CUDA:', torch.cuda.is_available())
CUDA: True
>>> print(torch.cuda.device_count())
1
>>> print(torch.cuda.get_device_name())
NVIDIA GeForce GTX 1650
>>> print(torch.cuda.get_device_capability())
(7, 5)

WSL Ubuntu22.04 に CUDA Toolkit をインストールする #2

CUDA Toolkit

PyTorch 対応できるのが CUDA12.1 らしいのでこのバージョンをインストールする

PyTorch CUDA 対応表


Download Installer for Linux WSL-Ubuntu 2.0 x86_64
https://developer.nvidia.com/cuda-12-1-1-download-archive?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=deb_local

NVIDIA container toolkit
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda-repo-wsl-ubuntu-12-1-local_12.1.1-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-1-local_12.1.1-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

開発環境構築 #1 WSL で Ubuntu を Ubuntu-20.04 → Ubuntu-22.04 にした メモ (Windows10)

WSL自体のアップデート

> wsl --update
インストール中: LinuxWindows サブシステム
LinuxWindows サブシステム  はインストールされました。

> wsl --version
WSL バージョン: 2.0.9.0
カーネル バージョン: 5.15.133.1-1
WSLg バージョン: 1.0.59
MSRDC バージョン: 1.2.4677
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows バージョン: 10.0.19045.4046


現在 インストールされているディストリビューションを一覧表示

> wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2


オンラインから インストールできるディストリビューションを一覧表示

> wsl --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl --install -d <Distro>' を使用してインストールします。

NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
OracleLinux_7_9                        Oracle Linux 7.9
OracleLinux_8_7                        Oracle Linux 8.7
OracleLinux_9_1                        Oracle Linux 9.1
openSUSE-Leap-15.5                     openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed                    openSUSE Tumbleweed


ディストリビューションを指定してインストール

> wsl --install -d Ubuntu-22.04
インストール中: Ubuntu 22.04 LTS
Ubuntu 22.04 LTS はインストールされました。
Ubuntu 22.04 LTS を起動しています...

>wsl -l -v
  NAME            STATE           VERSION
* Ubuntu          Stopped         2
  Ubuntu-22.04    Running         2


デフォルトで起動されるディストリビューションを変更

> wsl --set-default Ubuntu-22.04

> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-22.04    Running         2
  Ubuntu          Stopped         2


GPUが認識されているか確認

$ nvidia-smi
Sat Mar  2 10:04:59 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.54.04              Driver Version: 536.23       CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce GTX 1650        On  | 00000000:01:00.0  On |                  N/A |
| 50%   23C    P8              N/A /  75W |    219MiB /  4096MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A        23      G   /Xwayland                                 N/A      |
+---------------------------------------------------------------------------------------+


ssh 今はこれだけでsshdが自動的に起動される

$ sudo apt install ssh -y
$ sudo vi /etc/ssh/sshd_config
  PasswordAuthentication yes

久々にWSLさわったらいろいろ忘れていたのでメモ

WSLの起動 DOS窓から > wsl
ssh の起動 > sudo /etc/init.d/ssh start
ssh でリモートログインするときは 172.23.77.118等の仮想インタフェイスの方にアクセス
Docker の起動 > sudo service docker start

東証33業種を景気敏感株かディフェンシブ株に分類してみた

いろいろな考えがあると思いますが、作ってみたので公開します

17業種コード 17業種コード名 33業種コード 33業種コード名 景気敏感株/ディフェンシブ株
1 食品 50 水産・農林業 ディフェンシブ株
1 食品 3050 食料品 ディフェンシブ株
2 エネルギー資源 1050 鉱業 景気敏感株
2 エネルギー資源 3300 石油・石炭製品 景気敏感株
3 建設・資材 2050 建設業 ディフェンシブ株
3 建設・資材 3400 ガラス・土石製品 景気敏感株
3 建設・資材 3550 金属製品 景気敏感株
4 素材・化学 3100 繊維製品 ディフェンシブ株
4 素材・化学 3150 パルプ・紙 景気敏感株
4 素材・化学 3200 化学 景気敏感株
5 医薬品 3250 医薬品 ディフェンシブ株
6 自動車・輸送機 3350 ゴム製品 景気敏感株
6 自動車・輸送機 3700 輸送用機器 景気敏感株
7 鉄鋼・非鉄 3450 鉄鋼 景気敏感株
7 鉄鋼・非鉄 3500 非鉄金属 景気敏感株
8 機械 3600 機械 景気敏感株
9 電機・精密 3650 電気機器 景気敏感株
9 電機・精密 3750 精密機器 景気敏感株
10 情報通信・サービスその他 3800 その他製品 ディフェンシブ株
10 情報通信・サービスその他 5250 情報・通信業 ディフェンシブ株
10 情報通信・サービスその他 9050 サービス業 ディフェンシブ株
11 電気・ガス 4050 電気・ガス業 ディフェンシブ株
12 運輸・物流 5050 陸運業 ディフェンシブ株
12 運輸・物流 5100 海運業 景気敏感株
12 運輸・物流 5150 空運業 ディフェンシブ株
12 運輸・物流 5200 倉庫・運輸関連業 ディフェンシブ株
13 商社・卸売 6050 卸売業 景気敏感株
14 小売 6100 小売業 ディフェンシブ株
15 銀行 7050 銀行業 どちらとも言えない
16 金融(除く銀行) 7100 証券・商品先物取引 どちらとも言えない
16 金融(除く銀行) 7150 保険業 どちらとも言えない
16 金融(除く銀行) 7200 その他金融業 どちらとも言えない
17 不動産 8050 不動産業 どちらとも言えない
99 その他 9999 その他 どちらとも言えない

ImportError: Pandas requires version '3.0.0' or newer of 'jinja2' (version '2.11.2' currently installed). でやったこと

ImportError: Pandas requires version '3.0.0' or newer of 'jinja2' (version '2.11.2' currently installed).


これで対応できた
github.com

pip3 install --upgrade setuptools pip
pip3 uninstall jinja2 tornado
pip3 install --upgrade notebook jupyterhub