Pytorch模型转ONNX遇到Unexpected node type: onnx:: Sub

Pytorch模型转ONNX遇到Unexpected node type: onnx:: Sub_第1张图片

参考GPTDoubleHeadsModel Unexpected node type: onnx:: Sub · Issue #4950 · huggingface/transformers (github.com)

此问题相关文档较少,其原因大概率发生在Pytorch内部,与模型和数据也许无关。 

目前已知的是,问题函数大概是:torch.full_like(input, fille_value) ,建议自行搜索你的工程中有没有使用这个函数。

其作用与torch.full()大同小异,就是给定一个值fill_value和一个size,创建一个矩阵元素全为fill_value的大小为size的tensor。相关介绍如下:

(17条消息) pytorch每日一学23(torch.full()、torch.full_like())创造全value的矩阵_Fluid_ray的博客-CSDN博客

在转onnx时可能要求Sub的节点类型为整数型,也要求这里的tensor必须为整数型,所以将fille_value参数加上整数型强制转换,如图,bug就解决了。这与github上的错误解决方案相同。 

 

你可能感兴趣的:(pytorch,深度学习,神经网络)