报错信息:
RuntimeError: Exporting the operator amax to ONNX opset version 13 is not supported. Please feel free to request support or submit a pull request on PyTorch GitHub.
再将pt转成onnx报错,抓住报错中关键词,是因为在导出onnx的时候,使用了amax这个api报错。但是在训练期间,这个api不会报错。
所以在导出onnx的时候,将amax换成其他,能实现具有相同效果的实现方法。
比如我这里遇到的,
原代码为:
max_scores = scores.amax(dim=-1) # 原码 训练用
被改为:
max_scores = scores.sort(dim=-1, descending=True)[0][..., :1].view(1, -1) # Onnx导出用
注意,不是每次amax都能用以上代码替代,反正要根据实际情况做相应调整。达到同等替换原代码功能的代码的效果。
举一反三,以后遇到类似的,提示某个具体方法引起onnx导出失败,解决方法类似。