【问题标题】:Unable to load quantized pytorch mobile model on android无法在 android 上加载量化的 pytorch 移动模型
【发布时间】: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


    【解决方案1】:

    我发现此错误是由用于模型量化的 pytorch 版本与 pytorch_android 之间的版本不匹配引起的。

    该模型使用 pytorch 1.5.1 torchvision 0.6.1 cudatoolkit 10.2.89 进行量化,但我使用 org.pytorch:pytorch_android:1.4.0 进行构建。

    切换到 org.pytorch:pytorch_android:1.5.0 解决了它。

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 2018-11-23
      • 1970-01-01
      • 1970-01-01
      • 2016-06-16
      • 1970-01-01
      • 1970-01-01
      • 2021-01-15
      • 2022-01-17
      相关资源
      最近更新 更多