.view()
在 Pytorch 中,经常会对某个具体的 Tensor 做变换的处理。但在 PyTorch 转换到 ONNX 的过程中,例如
fea = fea.view(1, -1, 1, 1)
ONNX 会错误将 view 的纬度扩张变成 Reshape 节点,如下图所示
![db00e9d74ed92af125b89c71cbe1da2a.png](https://img-blog.csdnimg.cn/img_convert/db00e9d74ed92af125b89c71cbe1da2a.png)
但是在 Reshape 节点转换到 Tensorflow 的时候,Reshape 节点就变成了 Where 节点和若干节点的组合以防止出现纬度扩张的时候的 Bug,如下图所示
![a2825dee2f9f4dc528a43734029faa40.png](https://img-blog.csdnimg.cn/img_convert/a2825dee2f9f4dc528a43734029faa40.png)
虽然这样子处理貌似稳妥,但是在后续 TF 模型转换到 TFLite 的时候,TFLite 是不支持 Where 节点的。在翻阅 PyTorch Discuss 和 Stackoverflow 的众多讨论后发现大部分人也都是在这里弃坑。
为了避免这个自动转换的问题,这里正确的处理方式为
fea =