☰
【Pytorch】Onnx:前向验证准确性(onnx模型与pth结果对齐)
2026/10/22 12:22:51 网站建设 项目流程

Onnx模型前向验证

说明:

  1. 下方代码对应的是模板代码
  2. onnx_path是对应onnx的路径,data_path是pth模型前向保存的网络输入和网络输出
  3. 输出的打印比较多,可按照自己需求进行关闭
importonnxruntimeimporttorchimportpickleimportnumpyasnpimportonnx onnx_path="***.onnx"data_path="***.pkl"# 获取onnx网络的输出model=onnx.load(onnx_path)onnx.checker.check_model(model)output=model.graph.outputprint(output)# 使用onnxruntime进行前向推断importonnxruntime sess=onnxruntime.InferenceSession(onnx_path)output_layers_name=['aa','bb']# inputsinputs=pickle.load(open(data_path,'rb'))print(inputs.keys())dummy_input={'key0':inputs['key0'],'key1':inputs['key1']}onnx_output=sess.run(output_layers_name,dummy_input)res_onnx={}print("*"*60)foriinrange(len(output_layers_name)):res_onnx[output_layers_name[i]]=onnx_output[i]print(output_layers_name[i],res_onnx[output_layers_name[i]].shape)# compute diffprint("*"*60)print("begin to compute diff")foriinrange(len(output_layers_name)):res_onnx_tmp=res_onnx[output_layers_name[i]].reshape(-1)res_pth_tmp=inputs[output_layers_name[i]].cpu().numpy().reshape(-1)print("*"*60)print("{} , onnx_res: {}, pth_res: {}".format(output_layers_name[i],res_onnx_tmp.shape,res_pth_tmp.shape))diff=np.sum(res_onnx_tmp.reshape(-1)-res_pth_tmp.reshape(-1))print("{} diff: {}".format(output_layers_name[i],diff))

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询