OpenVINO部署模型时,需要先将PyTorch模型转ONNX,再将ONNX转为IR文件(.xml/.bin)。在模型转换过程中遇到pytorch 中的repeat()函数在OpenVINO工具中不支持,会出现shape[1 256 -1]的情况。
解决方法:
将repeat()函数替换为interpolate()函数,其中mode ='nearest',即近邻插值法进行替换。
更改注意事项:
①需要根据源码中Tensor后两维长宽的大小,更改对应的扩充倍数。
②由于repeat()函数与interpolate()函数扩张方式不同。u、v初始定义为一维,repeat()函数根据括号中的参数扩张后成为三维,而interpolate()函数根据括号中的参数扩张后成为一维,为了达到扩张后tensor仍然为三维,在后面加入reshape()函数,使其维度更改为三维。
更改前代码:
更改后代码: