Closed Trytoz closed 2 years ago
这是因为你的pytorch版本高了,使得导出的resize节点的scales不是一个initializer。你可以执行以下代码来修改实现目的: 或者降低pytorch版本到1.9、1.10等是可以的
import onnx
import onnx.helper as helper
model = onnx.load("yolov5s.onnx")
def find_node_for_output(nodes, name):
for i, n in enumerate(nodes):
if name in n.output:
return i, n
return None, None
nodes = model.graph.node
inits = model.graph.initializer
remove_nodes = []
for i, node in enumerate(nodes):
if node.op_type == "Resize":
idx, identity = find_node_for_output(nodes, node.input[2])
if identity is not None:
remove_nodes.append(idx)
node.input[2] = identity.input[0]
remove_nodes = sorted(remove_nodes,reverse=True)
for i in remove_nodes:
del nodes[i]
onnx.save(model, "output.onnx")
感谢 降低torch版本至1.8.2之后成功导出
本机环境CUDA11.3 CUDNN 8.4.1.50 TensorRT-8.4.1.5 python3.8 torch 1.12.0+cu113 torchaudio 0.12.0+cu113 torchvision 0.13.0+cu113 onnxruntime 1.12.0 onnxruntime-gpu 1.12.0 opencv-contrib-python 4.6.0.66 opencv-python 4.1.2.30 已成功通过vs 构建libpytrtc.pyd并且提供的demo正常运行与推理
--------------
我根据readme中的教程 对yolov5 6.0的代码进行修改 修改后的代码片段为
导出模型 python export.py --weights=yolov5s.pt --dynamic --include=onnx --opset=11 提示以下错误
运行trt转换时出现以下错误
我已经自我排查过好几次了 但是还是出现这种情况 已经焦头烂额了 希望能得到作者的解答 yolov5-6.0-edit.zip 附件为修改后的yolov5 6.0代码