将 vai_q_pytorch API 添加至浮点脚本 - 3.5 简体中文

Vitis AI 用户指南 (UG1414)

Document ID
UG1414
Release Date
2023-09-28
Version
3.5 简体中文
假设有预训练的浮点模型和 Python 脚本用于在量化之前评估其准确性/MAP。在此情况下,Quantizer API 会用量化模块替代浮点模块。对于标准评估,评估函数有助于量化模块的前传。通过将 quant_mode 标志配置为 caliber,即可在训练后量化的评估过程中确定张量的量化步骤。校准完成后,将 quant_mode 设置为“test”以评估量化模型。
  1. 导入 vai_q_pytorch 模块:
    from pytorch_nndct.apis import torch_quantizer, dump_xmodel
  2. 以需要输入的量化来生成量化器,并获取转换后的模型:
    input = torch.randn([batch_size, 3, 224, 224])
    quantizer = torch_quantizer(quant_mode, model, (input))
    quant_model = quantizer.quant_model
    
  3. 使用转换后的模型前传神经网络:
    acc1_gen, acc5_gen, loss_gen = evaluate(quant_model, val_loader, loss_fn)
  4. 输出量化结果并部署模型:
    if quant_mode == 'calib':
        quantizer.export_quant_config()
    if deploy:
        
        quantizer.export_torch_script()
        quantizer.export_onnx_model()
        quantizer.export_xmodel(deploy_check=False)