ai:pytorch
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
ai:pytorch [2019/12/29 16:49] – oga | ai:pytorch [2020/01/04 17:59] – [C++ API sample] oga | ||
---|---|---|---|
行 7: | 行 7: | ||
Define by Run 型の利点を活かしつつ、Chainer の様々な欠点を補う形で開発が進められている。 | Define by Run 型の利点を活かしつつ、Chainer の様々な欠点を補う形で開発が進められている。 | ||
Python に強く依存していた Chainer と違い、TensorFlow 同様 < | Python に強く依存していた Chainer と違い、TensorFlow 同様 < | ||
- | Python 上からしか高レベル API が使えないフレームワークが多い中、全く同じ API を < | + | Python 上からしか高レベル API が使えないフレームワークが多い中、Python と全く同じ高レベル |
Define by Run 型は Model 構造の定義がコードと独立しておらず異なる環境での再利用が難しいが、Script code に変換することで対応している。 | Define by Run 型は Model 構造の定義がコードと独立しておらず異なる環境での再利用が難しいが、Script code に変換することで対応している。 | ||
行 14: | 行 14: | ||
===== Install 手順 ===== | ===== Install 手順 ===== | ||
- | * Python, < | + | * Python, < |
* Linux, Windows, macOS | * 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:// | ||
+ | |||
ai/pytorch.txt · 最終更新: 2021/11/27 20:45 by oga