我正在尝试将模型导出为onnx
格式。该体系结构很复杂,因此在这里我不会共享它,但是基本上,我在.pth
文件中具有网络权重。我能够加载它们,创建网络并对其进行推理。
重要的是要注意,我已经修改了代码以能够量化网络。我添加了量化和反量化运算符以及一些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节省的量化运算符。
答案 0 :(得分:1)
嗯,事实证明ONNX不支持量化模型(但是在运行时无论如何都不会警告您,它只会抛出段错误)。它似乎尚未列入议程,因此可以使用TensorRT作为解决方案。