JuliaDiff/DifferentiationInterface.jl
An interface to various automatic differentiation backends in Julia.
何を解決するか
Juliaで自動微分(AD)を使用する際、バックエンド固有のコードを書く必要がなくなります。各ADライブラリの異なるAPIを学び、実装するのではなく、単一の統一された構文で、さまざまなバックエンド間で微分を計算できます。
動作方法
これは、サポートされているADバックエンドの特定のAPIに共通のコマンドをマッピングする抽象化レイヤー(インターフェース)として機能します。1次および2次オペレータ(勾配、ヤコビアン、ヘッセ行列など)をサポートし、インプレースおよびアウトオブプレースの微分を処理し、パフォーマンス最適化のためのキャッシュの事前割り当てやテープの記録のメカニズムを含みます。また、スパース微分の処理を組み込み、異なるバックエンド間で一貫した出力を保証する検証ツールも提供します。
対象ユーザー
自動微分を実行し、Zygote、ForwardDiff、Enzymeなどの異なるADバックエンド間で切り替えたいJuliaエコシステムの研究者や開発者。
主な特徴
- 統一された構文: Zygote、ForwardDiff、Enzymeを含む複数のADバックエンド用の1つのAPI。
- 包括的なオペレータ: 勾配、ヤコビアン、ヘッセ行列をサポート。
- パフォーマンス最適化: キャッシュやテープの事前割り当てのための準備メカニズムを含む。
- スパース対応: スパース微分の組み込み処理。
- 検証ツール:
DifferentiationInterfaceTestを通じたテストおよびベンチマークユーティリティを提供。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト