mobilenetv2_quant.py 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. import paddlex as pdx
  2. import os
  3. os.environ['CUDA_VISIBLE_DEVICES'] = '0'
  4. # 下载训练好的模型
  5. url = 'https://bj.bcebos.com/paddlex/models/mobilenetv2_vegetables.tar.gz'
  6. pdx.utils.download_and_decompress(url, path='.')
  7. # 下载相应的训练数据集
  8. url = 'https://bj.bcebos.com/paddlex/datasets/vegetables_cls.tar.gz'
  9. pdx.utils.download_and_decompress(url, path='.')
  10. # 加载模型
  11. model = pdx.load_model('mobilenetv2_vegetables')
  12. # 将正常模型导出为部署格式,用于对比
  13. import time
  14. for i in range(60):
  15. print('save', i)
  16. time.sleep(1)
  17. model.export_inference_model('server_mobilenet')
  18. # 加载数据集用于量化
  19. dataset = pdx.datasets.ImageNet(
  20. data_dir='vegetables_cls',
  21. file_list='vegetables_cls/train_list.txt',
  22. label_list='vegetables_cls/labels.txt',
  23. transforms=model.test_transforms)
  24. # 开始量化
  25. pdx.slim.export_quant_model(model, dataset, batch_size=4, batch_num=10, save_dir='./quant_mobilenet', cache_dir='./tmp')