【问题标题】:Segmentation Fault when exporting to onnx a quantized Pytorch model将量化的 Pytorch 模型导出到 onnx 时出现分段错误
【发布时间】:2020-10-12 15:40:46
【问题描述】:

我正在尝试将模型导出为 onnx 格式。架构很复杂,所以我不会在这里分享,但基本上,我在.pth 文件中有网络权重。我能够加载它们、创建网络并使用它进行推理。 需要注意的是,我已经调整了代码以便能够量化网络。我添加了 quantize 和 dequantize 运算符以及一些 torch.nn.quantized.FloatFunctional() 运算符。

但是,每当我尝试将其导出时

torch.onnx.export(torch_model,               # model being run
                  input_example,             # model input
                  model_name,                # where to save the model
                  export_params=True,        # store the trained parameter
                  opset_version=11,          # the ONNX version to export
                  # the model to
                  do_constant_folding=True,  # whether to execute constant
                  # folding for optimization
                 )

我得到Segmentation fault (core dumped) 我正在使用 Ubuntu 20,安装了以下软件包:

torch==1.6.0
torchvision==0.7.0
onnx==1.7.0
onnxruntime==1.4.0

请注意,根据我留在代码中的一些prints,导出的推理部分完成。分段错误发生在之后。

有人知道为什么会发生这种情况吗?

[编辑]:当我的网络不适合量化操作时,我可以导出它。所以问题不是安装坏了,更多的是一些量化算子节省onnx的问题。

【问题讨论】:

    标签: python segmentation-fault pytorch onnx


    【解决方案1】:

    好吧,事实证明 ONNX 不支持量化模型(但在运行时无论如何都不会警告您,它只会抛出一个段错误)。它似乎还没有提上日程,因此可以使用 TensorRT。

    【讨论】:

      猜你喜欢
      • 2021-04-06
      • 2021-09-01
      • 2019-10-07
      • 2021-10-04
      • 2023-03-15
      • 2021-09-02
      • 2022-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多