QDQモデル形式
QDQモデル形式
Section titled “QDQモデル形式”- TOC
このドキュメントでは、QDQ(QuantizeLinear/DequantizeLinear)形式の量子化モデルを使用する方法について説明します。
量子化は、ONNX Runtimeの重要なパフォーマンス最適化です。浮動小数点数を整数に変換することで、待ち時間を短縮し、モデルサイズを縮小します。
ONNX Runtimeは、さまざまな量子化オプションをサポートしています。こちらの概要を参照してください。
ONNX Runtimeは、QOperatorとQDQの両方の量子化モデル形式をサポートしています。
QDQ形式は、QOperator形式よりも新しいです。QDQ形式の主な利点は、モデル内の量子化パラメータがテンソルではなく演算子として表現されることです。これにより、ONNX RuntimeのEP(実行プロバイダー)がモデルを解析してバックエンドに渡すのが容易になります。これは、TensorRTやNNAPIなどのEPを使用する場合に重要です。これらのEPは、独自の量子化アルゴリズムを持っており、ONNX Runtimeが提供する量子化パラメータを使用する代わりに、モデルを再量子化することを好む場合があります。
一般的に、QDQ形式はQOperator形式よりも推奨されます。
QDQ形式の量子化モデルを生成する方法
Section titled “QDQ形式の量子化モデルを生成する方法”QDQ形式の量子化モデルを生成するには、ONNX Runtime量子化ツールを使用します。
量子化ツールは、浮動小数点モデルを量子化モデルに変換するPythonスクリプトです。
量子化ツールは、コマンドラインから、またはPythonスクリプトから直接使用できます。
コマンドラインの使用法
Section titled “コマンドラインの使用法”python -m onnxruntime.quantization.quantize --input_model <モデルへのパス> --output_model <モデルへのパス> --quant_format QDQPythonの使用法
Section titled “Pythonの使用法”from onnxruntime.quantization import quantize, QuantType
quantize_dynamic( model_input='<モデルへのパス>', model_output='<モデルへのパス>', quant_format='qdq', activation_type=QuantType.QInt8, weight_type=QuantType.QInt8)QDQ形式の量子化モデルを実行する方法
Section titled “QDQ形式の量子化モデルを実行する方法”QDQ形式の量子化モデルを実行することは、他のONNXモデルを実行することと同じです。特別な設定は必要ありません。
こちらのONNX Runtime APIドキュメントを参照してください。
QDQ形式の量子化モデルをデバッグする方法
Section titled “QDQ形式の量子化モデルをデバッグする方法”QDQ形式の量子化モデルをデバッグするには、NetronなどのONNXモデルビューアを使用できます。
Netronでは、モデル内のQDQノードを表示できます。これは、量子化が期待どおりに適用されていることを確認するのに役立ちます。
Netronを使用して、量子化モデルと浮動小数点モデルの間の重みとバイアスの値を比較することもできます。これは、量子化プロセスで精度が失われていないことを確認するのに役立ちます。
その他のリソース
Section titled “その他のリソース”- ONNX Runtimeの量子化
- ONNX Runtime量子化ツール
- ONNXウェブサイトの量子化
- Netron
- ONNX Runtime実行プロバイダー(EP)
- ONNX Runtimeパフォーマンスのトラブルシューティング
- モバイルでのONNX Runtimeのパフォーマンスチューニング
- ORT形式モデルランタイム最適化
- ORT形式モデル
- TensorRT実行プロバイダー
- NNAPI実行プロバイダー
- Core ML実行プロバイダー
- OpenVINO実行プロバイダー
- DirectML実行プロバイダー
- CUDA実行プロバイダー
- ONNX Runtime APIドキュメント
- ONNX Runtimeカスタム演算子
- ONNX Runtimeビルド構成ファイル
- ONNX Runtime iOSのインストール
- ONNX Runtime Androidのインストール
- ONNX Runtime JavaScriptのインストール
- ONNX Runtime Pythonパッケージ
- ONNX RuntimeナイトリーPythonパッケージ
- Flatbuffers Pythonパッケージ
- ONNX Runtime GitHubリポジトリ
- ONNX Runtimeリリースブランチ
- ONNX Runtimeメインブランチ
- ONNX Runtime 1.7.2リリース
- ONNX Runtime 1.8リリース
- ONNX Runtime 1.10リリース
- ONNX Runtime 1.11リリース
- ONNX Runtime 1.12リリース
- ONNX Runtime 1.13リリース
- ONNX Runtime 1.14リリース
- ORT形式の更新 in 1.13
- モデル変換のチュートリアル
- モデル実行のチュートリアル
- ORT形式モデルのリファレンス
- 縮小演算子構成ファイルのリファレンス
- カスタム演算子のリファレンス
- 演算子のリファレンス
- iOS APIリファレンス
- Android APIリファレンス
- C APIリファレンス
- C++ APIリファレンス
- Java APIリファレンス
- Objective-C APIリファレンス
- JavaScript APIリファレンス
- Python APIリファレンス
- Node.js APIリファレンス
- Windows APIリファレンス
- Linux APIリファレンス
- macOS APIリファレンス
- onnxruntime-web NPMパッケージ
- onnxruntime-node NPMパッケージ
- onnxruntime-react-native NPMパッケージ
- onnxruntime-common NPMパッケージ
- ONNX Runtime Webデモ
- ONNX Runtime Webの例
- ONNX Runtime Node.jsの例
- ONNX Runtime React Nativeの例
- ONNX Runtime WebAssemblyの例
- ONNX Runtime Webの量産準備
- ONNX Runtime Webのデバッグ
- ONNX Runtime Webのプロファイリング
- ONNX Runtime Webのマルチスレッド
- ONNX Runtime WebのWebGPU
- ONNX Runtime WebのWebGL
- ONNX Runtime WebのWebAssembly SIMD
- ONNX Runtime WebのWebAssembly例外
- ONNX Runtime WebのWebAssemblyプロキシ
- ONNX Runtime WebのWebAssemblyスレッド
- ONNX Runtime WebのWebAssembly WebWorker
- ONNX Runtime WebのWebAssembly WebWorkerの例
- ONNX Runtime WebのWebAssembly WebWorkerのプロファイリング
- ONNX Runtime WebのWebAssembly WebWorkerのデバッグ
- ONNX Runtime WebのWebAssembly WebWorkerのマルチスレッド
- ONNX Runtime WebのWebAssembly WebWorkerのWebGPU
- ONNX Runtime WebのWebAssembly WebWorkerのWebGL
- ONNX Runtime WebのWebAssembly WebWorkerのWebAssembly SIMD
- ONNX Runtime WebのWebAssembly WebWorkerのWebAssembly例外
- ONNX Runtime WebのWebAssembly WebWorkerのWebAssemblyプロキシ
- ONNX Runtime WebのWebAssembly WebWorkerのWebAssemblyスレッド
- ONNX Runtime WebのWebAssembly WebWorkerのWebAssembly WebWorker
- ONNX Runtime WebのWebAssembly WebWorkerのWebAssembly WebWorkerの例
- ONNX Runtime WebのWebAssembly WebWorkerのWebAssembly WebWorkerのプロファイリング
- ONNX Runtime WebのWebAssembly WebWorkerのWebAssembly WebWorkerのデバッグ
- ONNX Runtime WebのWebAssembly WebWorkerのWebAssembly WebWorkerのマルチスレッド
- ONNX Runtime WebのWebAssembly WebWorkerのWebAssembly WebWorkerのWebGPU
- ONNX Runtime WebのWebAssembly WebWorkerのWebAssembly WebWorkerのWebGL
- ONNX Runtime WebのWebAssembly WebWorkerのWebAssembly WebWorkerのWebAssembly SIMD
- ONNX Runtime WebのWebAssembly WebWorkerのWebAssembly WebWorkerのWebAssembly例外
- ONNX Runtime WebのWebAssembly WebWorkerのWebAssembly WebWorkerのWebAssemblyプロキシ
- ONNX Runtime WebのWebAssembly WebWorkerのWebAssembly WebWorkerのWebAssemblyスレッド