我有两个 ONNX 格式的模型。两种模型相似(都是预训练的深度学习模型,例如 ResNet50 模型)。它们之间的唯一区别是最后一层针对不同的数据集进行了优化/重新训练。
我想合并这两个模型的前k层,如下图。这应该会提高推理的性能。
sclblonnx包提供了许多更高级别的功能来编辑 ONNX 图,包括合并两个子图的能力。
您可以使用 ONNX 包及其公开的 API ( https://github.com/onnx/onnx/blob/master/docs/PythonAPIOverview.md ) 来改变模型/图形。
sclblonnx包不支持动态大小输入。
对于动态大小输入,一种解决方案是使用 ONNX API 编写您自己的代码,如前所述。另一种解决方案是使用onnx-tensorflow或onnx2pytorch等工具将两个 ONNX 模型转换为框架(Tensorflow 或 PyTorch) 。您可以在 Tensorflow 或 Pytorch 中操作网络,并将整个网络导出为 Onnx 格式。