次にトレーニング結果を向上させるためのヒントをいくつか示します。
- 可能な限り、事前にトレーニングした浮動小数点重みを初期値としてロードし、量子化認識トレーニングを開始します。ランダムな初期値を使用してゼロからトレーニングすることも可能ですが、トレーニングはより難しくなり、その時間も長くなります。
- トレーニング済みの浮動小数点重みをロードする場合、ネットワーク パラメーターとクオンタイザー パラメーターについて、それぞれ異なる初期学習率と学習率低減ストラテジを使用する必要があります。一般的に、ネットワーク パラメーターの学習率は小さい値に設定し、クオンタイザー パラメーターの学習率は大きい値に設定する必要があります。
model = qat_processor.trainable_model() param_groups = [{ 'params': model.quantizer_parameters(), 'lr': 1e-2, 'name': 'quantizer' }, { 'params': model.non_quantizer_parameters(), 'lr': 1e-5, 'name': 'weight' }] optimizer = torch.optim.Adam(param_groups)
- オプティマイザーの選択に関しては、torch.optim.SGD は使用しないでください。このオプティマイザーではトレーニングが収束しないことがあります。torch.optim.Adam または torch.optim.RMSprop、およびそれらのバリアントの使用を推奨します。