the flow should be:
1. prepared = prepare_qat(model, ...)
2. disable fake_quant, but enable observation, prepared.apply(torch.ao.quantization.disable_fake_quant)
prepared.apply(torch.ao.quantization.enable_observer)
3. run a few epochs
4. enable fake_quant, and do QAT
prepared.apply(torch.ao.quantization.disable_fake_quant)
5. train a few epochs
6. convert to quantized model

how many epochs do we train before turning on fake_quant and after turning on fake_quant are the hyperparameters that we can experiment with.