Pytorch DataParallel多卡训练模型导出onnx模型
Pytorch采用DataParallel进行多卡训练得到的模型文件直接转换到onnx模型会出现不支持的情况,原因是使用DataParallel进行多卡训练,模型文件中的键值对key值前面会多一个"modules.":
def export_onnx(model, im, file, opset=12): f = file.with_suffix('.onnx') torch.onnx.export(model.module, im, f, verbose=False, opset_version=opset, do_constant_folding=True, input_names=["images"], output_names=["da", "ll"]) model_onnx = onnx.load(f) # load onnx model onnx.checker.check_model(model_onnx) # check onnx model onnx.save(model_onnx, f)
将torch.onnx.export(model 。。。。)第一个参数修改为model.module