次のコードは、vai_q_tensorflow2 API を使用してトレーニング後の量子化を実行する方法を示しています。完全なサンプルは、ここにあります。
model = tf.keras.models.load_model(‘float_model.h5’)
from tensorflow_model_optimization.quantization.keras import vitis_quantize
quantizer = vitis_quantize.VitisQuantizer(model)
quantized_model = quantizer.quantize_model(calib_dataset=calib_dataset,
calib_step=100,
calib_batch_size=10,
**kwargs)
- calib_dataset
- ここでは、キャリブレーション用の代表的なキャリブレーション データセットとして
calib_dataset
を使用しています。eval_dataset
、train_dataset
、またはその他データセットのすべてあるいは一部を使用できます。 - calib_steps
-
calib_steps
は、キャリブレーションの全ステップ数です。デフォルト値は None です。calib_dataset
がtf.data dataset
、ジェネレーター、またはkeras.utils.Sequence
インスタンスのいずれかで、ステップ数が None の場合、データセットがなくなるまでキャリブレーションが実行されます。この引数は、配列入力ではサポートされません。 - calib_batch_size
- calib_batch_size は、キャリブレーションのバッチあたりのサンプル数です。「calib_dataset」の形式がデータセット、ジェネレーター、または
keras.utils.Sequence
インスタンスの場合、バッチ サイズはデータセット自体で制御します。calib_dataset
の形式がnumpy.array
オブジェクトの場合、デフォルトのバッチ サイズは 32 です。 - **kwargs
-
量子化ストラテジのユーザー定義の設定を指定する dict。デフォルトの内蔵量子化ストラテジをオーバーライドします。たとえば、
bias_bit=16
に設定すると、量子化ツールは 16 ビット クオンタイザーを使用してすべてのバイアスを量子化します。ユーザー定義の設定の詳細は、vai_q_tensorflow2 の使用法 を参照してください。