TensorFlow 2.x - 3.5 日本語

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

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

量子化 API

vitis_vai.quantize(
input_float, 
quantize_strategy = 'pof2s', 
custom_quantize_strategy = None,
calib_dataset = None, 
calib_steps = None, 
calib_batch_size = None, 
save_path = './vai_wego/quantized.h5', 
verbose = 0, 
add_shape_info = False, 
dump = False, 
dump_output_dir = './vai_dump/') 

この関数は、浮動小数点モデルのトレーニング後の量子化 (PTQ) を実行します。これには、モデルの最適化、重みの量子化、およびアクティベーションのトレーニング後の量子化が含まれます。

パラメーター

input_float
tf.keras.Model 量子化される浮動小数点オブジェクト。
quantize_strategy
量子化ストラテジのタイプを指定する文字列オブジェクト。指定可能な値は、pof2spof2s_tqtfs、および fsx です。pof2s はデフォルトのストラテジで、2 のべき乗スケールのクオンタイザーとストレート スルー エスティメーターを使用します。pof2s_tqtVitis AI 1.4 で導入されたストラテジで、2 のべき乗スケールのクオンタイザーでトレーニング済みしきい値を使用し、より優れた QAT 結果を生成できます。fsVitis AI 2.5 で導入された新しい量子化ストラテジで、Conv2D、DepthwiseConv2D、Conv2DTranspose、および Dense レイヤーの入力と重みに対して浮動小数点スケールの量子化を実行します。一方、fsx は、量子化ストラテジを fs 量子化ストラテジよりも多くのレイヤー タイプ (Add、MaxPooling2D、AveragePooling2D など) に拡張し、量子化にバイアスとアクティベーションも含めます。
注記:
  • 最大限の性能を得るには、QAT で init_quant=True の場合のみ pof2s_tqt ストラテジを使用するようにします。
  • fs および fsx ストラテジは、浮動小数点をサポートするターゲット デバイス向けに設計されています。DPU は現在、浮動小数点をサポートしていないため、これらの量子化ストラテジで量子化されたモデルは DPU で運用できません。
custom_quantize_strategy
文字列オブジェクト。カスタム量子化ストラテジ JSON ファイルのファイル パス。
calib_dataset
tf.data.Datasetkeras.utils.Sequence、または np.numpy オブジェクト。キャリブレーション用の代表的データセット。eval_dataset、train_dataset、またはその他のデータセットの全体または一部を calib_dataset として使用できます。
calib_steps
int オブジェクト。キャリブレーションの全ステップ数です。デフォルト値 (None) の場合は無視されます。calib_datasettf.data データセット、ジェネレーター、または keras.utils.Sequence インスタンスのいずれかで、ステップ数が None の場合、データセットがなくなるまでキャリブレーションが実行されます。配列入力はこの引数をサポートしていません。
calib_batch_size
int オブジェクト。キャリブレーションのバッチあたりのサンプル数です。「calib_dataset」の形式がデータセット、ジェネレーター、または keras.utils.Sequence インスタンスの場合、バッチ サイズはデータセット自体で制御します。「calib_dataset」の形式が numpy.array オブジェクトの場合、デフォルトのバッチ サイズは 32 に設定されます。
save_path
文字列オブジェクト。量子化されたモデルを保存するディレクトリを指定します。
verbose
int オブジェクト。ログの冗長性です。verbose の値が大きいほど、より詳細なログが生成されます。デフォルト値は 0 です。
add_shape_info
ブール型のオブジェクト。カスタム レイヤーの形状推論情報を追加するかどうかを決定します。カスタム レイヤーを使用したモデルの場合、True に設定する必要があります。
dump
ダンプを有効/無効にするフラグdump=False の場合はダンプが無効で、dump=True の場合はダンプが有効です。
dump_output_dir
文字列オブジェクト。ダンプ結果を保存するディレクトリ。

WeGO TensorFlow 2.x でのオンザフライ量子化の使用方法の詳細は、WeGO の例を参照してください。