この関数は、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
-
intオブジェクト。最初の PTQ の全ステップ数です。デフォルト値 (None) の場合は無視されます。calib_dataset がtf.data dataset、ジェネレーター、またはkeras.utils.Sequenceインスタンスで、ステップが None の場合、キャリブレーションはデータセットがなくなるまで実行されます。配列入力はこの引数をサポートしていません。 - calib_batch_size
-
intオブジェクト。最初の PTQ のバッチあたりのサンプル数です。「calib_dataset」の形式がデータセット、ジェネレーター、またはkeras.utils.Sequenceインスタンスの場合、バッチ サイズはデータセット自体で制御します。「calib_dataset」の形式がnumpy.arrayオブジェクトの場合、デフォルトのバッチ サイズは 32 です。 - train_with_bn
-
boolオブジェクト。QAT 時に bn レイヤーを保持するかどうかを指定します。True に設定した場合、量子化認識トレーニング中に bn パラメーターが更新され、モデルが収束しやすくなります。これらのトレーニング済み bn レイヤーは、get_deploy_model() 関数で前のたたみ込みのようなレイヤーに統合されます。浮動小数点モデルに bn レイヤーがない場合、このオプションは無効です。デフォルト値はオフです。 - freeze_bn_delay
-
intオブジェクト。bn パラメーターを凍結させる前のトレーニング ステップ。ここで指定したステップ数が経過後、モデルは推論 bn パラメーターを切り替えてトレーニングが不安定になるのを防ぎます。train_with_bn が True の場合のみ適用されます。デフォルト値は -1 (bn を凍結しない) です。