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) 実行の両方をサポート。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト