PyTorch
ONNX出力 (torch.onnx) には従来のTorchScript経由によるもの (torch.onnx.export) と新しいTorchDynamo経由によるもの (torch.onnx.dynamo_export) がある。前者は#TorchScriptを参照。
PyTorchは、コンピュータビジョンや自然言語処理で利用されているTorch(英語版)を元に作られた、Pythonのオープンソースの機械学習ライブラリである。最初はFacebookの人工知能研究グループAI Research lab(FAIR)により開発された。PyTorchはフリーでオープンソースのソフトウェアであり、修正BSDライセンスで公開されている。
さまざまなディープラーニングのソフトウェアがPyTorchを利用して構築されており、その中には、UberのPyro、HuggingFaceのTransformers、Catalystなどがある。
PyTorchは以下の機能を備えている:
強力なGPUサポートを備えた(NumPyのような)テンソル演算
自動微分エンジンの上に構築された深層学習トレーニング (torch.autograd)
自動微分化や自動ベクトル化などの(Google JAX(英語版)のような)関数変換(functorch / torch.func)
実行時コンパイル (torch.jit)
並列処理(#並列処理参照)
機械学習モデル形式「ONNX」へのエクスポート(torch.onnx)
AOT Autograd (functorch.compile) は前向き関数と後向き関数をコンパイルするための実験的サブシステムである。FX GraphをTorchScriptのコンパイラによってコンパイルするための functorch.compile.ts_compile も実験的に提供されている。
以下は前向き (forward) 関数の変換の例である: