dotnet/TorchSharp
A .NET library that provides access to the library that powers PyTorch.
解決する課題
TorchSharpは、PyTorchの機能を.NETエコシステムにもたらします。これまで.NET開発者がPyTorchを利用するためにPythonや他のフレームワークを使用しなければならなかった問題を解決します。基盤となるLibTorchライブラリへのアクセスを提供し、.NET開発者がC#やF#でニューラルネットワークの構築や学習、テンソル演算などを行えるようにします。
仕組み
TorchSharpはラッパーライブラリです。ネイティブのLibTorchバイナリをラップし、.NET APIとして公開します。設計はPyTorchのAPIを可能な限り忠実に再現しているため、Pythonベースの例を簡単に変換できます。メソッドオーバーロードを利用して複数の入力タイプをサポートし、PyTorchで列挙型が使用される箇所では.NETの列挙型を使用します。中心となるのはテンソルです。ライブラリには各モジュールクラス(Linear、ReLU、Dropoutなど)のファクトリメソッドが含まれており、C#コードがPyTorchと似た見た目になるようになっています。メモリ管理は、破棄可能なオブジェクトと慎重なリソース追跡を通じて処理されます。
対象ユーザー
このライブラリは、.NET環境を離れることなくPyTorchのパワーを活用したい.NET開発者向けです。特にC#やF#で作業する研究者、データサイエンティスト、機械学習エンジニアにとって有用です。また、自動微分を実現するためにこれを基盤として構築されたDiffSharpなどの他のライブラリでも使用されています。
ハイライト
- テンソルに焦点を当てたLibTorch(PyTorchのエンジン)の.NETバインディングを提供。
- PyTorchのように感じられるよう設計されており、Pythonの例を簡単に適応可能。
- CPUおよびCUDA(Windows/Linux)用のパッケージをバンドルし、NuGet経由で配布。
- Linux、Windows、macOS (Apple Silicon) で動作。
- ネットワークの構築と学習のための高レベルモジュール(Linear、ReLU、Dropout)とオプティマイザ(Adam)を含む。
- CPUおよびGPU (CUDA) 実行の両方をサポート。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト