ai:pytorch
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン最新のリビジョン両方とも次のリビジョン | ||
ai:pytorch [2019/07/13 14:51] – oga | ai:pytorch [2021/11/27 20:42] – [ROCm 4.3 + PyTorch 1.11] oga | ||
---|---|---|---|
行 4: | 行 4: | ||
+ | Chainer と同じ流れをくむ Define by Run 型のフレームワーク。 | ||
+ | Define by Run 型の利点を活かしつつ、Chainer の様々な欠点を補う形で開発が進められている。 | ||
+ | Python に強く依存していた Chainer と違い、TensorFlow 同様 < | ||
+ | Python 上からしか高レベル API が使えないフレームワークが多い中、Python と全く同じ高レベル API を < | ||
+ | Define by Run 型は Model 構造の定義がコードと独立しておらず異なる環境での再利用が難しいが、Script code に変換することで対応している。 | ||
+ | |||
+ | |||
+ | ===== Install 手順 ===== | ||
+ | |||
+ | * Python, < | ||
+ | * Linux, Windows, macOS | ||
+ | * GPU は CUDA のみ。ROCm 版もあるらしい。 | ||
+ | |||
+ | |||
+ | ===== メモ ===== | ||
+ | |||
+ | CPU と GPU 間のメモリ転送は明示的に記述する必要あり。ただし非常に簡単。 | ||
+ | |||
+ | <code cpp> | ||
+ | float batch_size[ 3*32*32 ]; | ||
+ | torch:: | ||
+ | auto inputs_gpu= inputs_cpu.to( torch:: | ||
+ | |||
+ | auto outputs_gpu= model-> | ||
+ | auto outputs_cpu= outputs_gpu.to( torch::kCPU ); | ||
+ | </ | ||
+ | |||
+ | |||
+ | Model (Module) の定義は class ~Impl を使い、TORCH_MODULE() マクロで定義する。 | ||
+ | |||
+ | <code cpp> | ||
+ | # | ||
+ | |||
+ | class ModelFCImpl : public torch:: | ||
+ | torch:: | ||
+ | torch:: | ||
+ | ~ | ||
+ | public: | ||
+ | ModelFC() | ||
+ | { | ||
+ | fc1= register_module( " | ||
+ | fc2= register_module( " | ||
+ | ~ | ||
+ | } | ||
+ | torch:: | ||
+ | { | ||
+ | ~ | ||
+ | x= torch:: | ||
+ | x= fc2( x ); | ||
+ | return | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | TORCH_MODULE( ModelFC ); | ||
+ | </ | ||
+ | |||
+ | Shape 定義は NCHW 形式で IntArrayRef を使う。< | ||
+ | |||
+ | TORCH_MODULE() で定義しておけば直接 torch:: | ||
+ | |||
+ | |||
+ | ===== C++ API sample ===== | ||
+ | |||
+ | https:// | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ====== RADEON (ROCm) で PyTorch を使う方法 ====== | ||
+ | |||
+ | RADEON で PyTorch の < | ||
+ | |||
+ | |||
+ | * [[https:// | ||
+ | |||
+ | |||
+ | ==== ROCm 4.3 + PyTorch 1.11 ==== | ||
+ | |||
+ | * Ubuntu 20.04LTS RADEON Vega 56 | ||
+ | |||
+ | < | ||
+ | $ sudo apt update | ||
+ | $ sudo apt dist-upgrade | ||
+ | $ sudo apt install libnuma-dev | ||
+ | $ sudo reboot | ||
+ | $ sudo apt install wget gnupg2 | ||
+ | $ wget -q -O - https:// | ||
+ | $ echo 'deb [arch=amd64] https:// | ||
+ | $ sudo apt update | ||
+ | $ sudo rocminfo | ||
+ | $ sudo apt install rocm-dkms | ||
+ | $ sudo reboot | ||
+ | $ sudo apt install git cmake | ||
+ | $ sudo apt install python3-pip | ||
+ | $ pip3 install setuptools numpy wheel pyyaml | ||
+ | $ git clone --recursive https:// | ||
+ | $ cd pytorch | ||
+ | $ sudo apt install rccl rocm-libs | ||
+ | $ pip3 install typing_extensions | ||
+ | $ python3 tools/ | ||
+ | $ ROCclr_DIR=/ | ||
+ | </ | ||
ai/pytorch.txt · 最終更新: 2021/11/27 20:45 by oga