【发布时间】:2020-06-22 02:46:43
【问题描述】:
我正在努力让我的量化 pytorch 移动模型(自定义 MobilenetV3)在 android 上运行。我已经按照本教程https://pytorch.org/tutorials/advanced/static_quantization_tutorial.html 进行了操作,并且成功地量化了我的模型,没有任何问题。但是,当我尝试通过加载模型时。 module = Module.load(assetFilePath(this, MODEL_NAME));
我得到以下异常:
未知的内置操作:quantized::linear_unpack_fp16。
找不到任何与 quantized::linear_unpack_fp16 类似的操作。这 在 TorchScript 中可能不存在或当前不支持 op。
为什么量化模型中甚至还有 float16 值,我认为量化会用 qint8/quint8 替换所有 float32 值?关于如何解决此问题的任何想法?
这就是 pytorch 模型被量化和保存的方式:
torch.quantization.get_default_qconfig(backend='qnnpack')
model.qconfig = torch.quantization.default_qconfig
torch.quantization.prepare(model, inplace=True)
torch.quantization.convert(model, inplace=True)
traced_script_module = torch.jit.trace(model,dummyInput)
traced_script_module.save("model/modelQuantized.pt")
【问题讨论】:
标签: android pytorch quantization