新しいデータ形式を使用する - 3.5 日本語

Vitis AI ユーザー ガイド (UG1414)

Document ID
UG1414
Release Date
2023-09-28
Version
3.5 日本語

vai_q_pytorch はブロック浮動小数点 (BFP) という新しいデータ形式を導入します。BFP では、同じブロック内の数値は指数部を共有します。共有される指数部は、ブロック内で最も大きな指数部を持つ数値で決定されます。小さい数値では、この共有指数部に対応するために仮数部が右にシフトされます。

量子化結果を評価に vai_q_pytorch を使用することはできますが、現時点では量子化されたモデルをハードウェアにデプロイするオプションはありません。

注記: BFP は、現在のバージョンの Vitis AI ツールチェーンでは完全にサポートされていない新しいデータ フォーマットです。

使用法

BFP には、ビット幅、ブロック サイズなど、さまざまな設定があります。ユーザーは、「mx6」と「mx9」という 2 種類のプリセットをそのまま利用できるため、これらを設定する必要はありません。モデルを量子化するには、次の手順を実行します。

  • 浮動小数点モデルと入力を準備する
    model = buid_your_model()
    batch_size = 32
    inputs = torch.randn([batch_size, 3, 224, 224], dtype=torch.float32)
  • 浮動小数点モデルを量子化する
    from pytorch_nndct import bfp
    quantized_model = bfp.quantize_model(model, inputs, dtype='mx6')
  • 量子化されたモデルの検証: 量子化されたモデルを評価関数に渡して、結果を検証する。
    validate(quantized_model, data_loader)

BFP API

bfp.quantize_model(model, inputs, dtype='mx6', config_file=None)
モデル
量子化される浮動小数点モジュール。
入力
入力テンソルは量子化される浮動小数点モジュールの実際の入力と同じ形状を持ちますが、値は乱数を取ることができます。
dtype
あらかじめ設定された BFP の構成。指定可能な値は mx6mx9 です。
config_file
コンフィギュレーション ファイルのパス。この機能は開発中です。事前定義済みの dtype を使用してください。