yalue/onnxruntime_go

A Go (golang) library wrapping microsoft/onnxruntime.

解決する課題

このライブラリは、ONNX形式のニューラルネットワークをロードして実行するためのシンプルなGo (Golang) インターフェースを提供します。特にクロスプラットフォームの互換性の課題に対処し、Windows、Linux、macOS上のGoでONNX RuntimeのC/C++ APIを使用できるようにすることで、WindowsにおけるCGoとMSVC間の一般的なコンパイラ競合を克服します。

仕組み

onnxruntime のソースコードに依存する代わりに、このライブラリは実行時に onnxruntime の共有ライブラリ(DLLまたは.so)を手動でロードします。これにより、特定のコンパイラへの依存が排除され、Goのジェネリクスを使用してさまざまなTensorデータ型をサポートすることが可能になります。CUDA、TensorRT、CoreMLを含む、ハードウェアアクセラレーションのための複数の実行プロバイダーをサポートしています。

対象者

C++コードを書いたり、複雑なクロスプラットフォームのビルド設定に対処したりすることなく、学習済みのONNXニューラルネットワークをアプリケーションに統合したいGo開発者。

ハイライト

  • クロスプラットフォーム対応: Windows、Linux、macOSで動作します。
  • ハードウェアアクセラレーション: CUDA、TensorRT、CoreMLの実行プロバイダーをサポートしています。
  • ジェネリックTensor: Goのジェネリクスを使用して、複数のTensorデータ型を効率的に処理します。
  • 柔軟なセッション管理: 入出力Tensorを精密に制御する AdvancedSession と、実行中に柔軟なTensor指定が可能な DynamicAdvancedSession を提供します。

関連

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