この関数は、QAT に使用する浮動小数点モデルを取得します。
vitis_quantize.VitisQuantizer.get_qat_model(
init_quant=False,
calib_dataset=None,
calib_batch_size=None,
calib_steps=None,
train_with_bn=False,
freeze_bn_delay=-1)
引数
- init_quant
- QAT の前に最初の量子化を実行するかどうかを指定する
bool
オブジェクト。最初に PTQ 量子化を実行すると、クオンタイザーのパラメーターの初期状態が改善します (特に 8bit_tqt ストラテジを使用した場合)。それ以外の場合、トレーニングが収束しないことがあります。 - calib_dataset
-
tf.data.Dataset
、keras.utils.Sequence
、またはnp.numpy
オブジェクト。キャリブレーション用の代表的なデータセット。「init_quant」がTrue
の場合は、設定する必要があります。eval_dataset、train_dataset、またはその他のデータセットの全体または一部を calib_dataset として使用できます。 - calib_steps
- 最初の PTQ の全ステップ数を指定する int オブジェクト。デフォルト値 (None) の場合は無視されます。「calib_dataset」が
tf.data dataset
、ジェネレーター、またはkeras.utils.Sequence
インスタンスのいずれかで、ステップ数が None の場合、データセットがなくなるまでキャリブレーションが実行されます。この引数は、配列入力ではサポートされません。 - calib_batch_size
- 最初の PTQ のバッチあたりのサンプル数を指定する int オブジェクト。「calib_dataset」の形式がデータセット、ジェネレーター、または
keras.utils.Sequence
インスタンスの場合、バッチ サイズはデータセット自体で制御します。「calib_dataset」の形式がnumpy.array
オブジェクトの場合、デフォルトのバッチ サイズは 32 です。 - train_with_bn
- QAT 時に bn レイヤーを保持するかどうかを指定する
bool
オブジェクト。True に設定した場合、量子化認識トレーニング中に bn パラメーターが更新され、モデルが収束しやすくなります。これらのトレーニング済み bn レイヤーは、get_deploy_model() 関数で前のたたみ込みのようなレイヤーに統合されます。浮動小数点モデルに bn レイヤーが存在しない場合、このオプションは無視されます。デフォルト値は False です。 - freeze_bn_delay
- bn パラメーターを凍結する前のトレーニングのステップ数を指定する int オブジェクト。ここで指定したステップ数が経過後、モデルは推論 bn パラメーターを切り替えてトレーニングが不安定になるのを防ぎます。train_with_bn が True の場合のみ適用されます。デフォルト値は -1 (bn を凍結しない) です。