今回は自分自身へのいましめも含めて記事にしました。
ーーーーーーーーーーーーーーーーーーーーーーーーー
onnxへの変換の際に、torchvision.transformsのResize()で以下のエラーが出力された。
Exporting the operator 'aten::_upsample_bilinear2d_aa' to ONNX opset version 19 is not supported.
ならばtorchvision.transforms.functionalのInterpolate()ならばどうだろうと試してみたところ、無事解決したので、その理由も考えずにスルーしてマージ。
そのまま数週間後学習用コードはResize()で、onnx用コードはinterpolate()を利用していたところ、なぜか学習した重みを使ってonnxを作成すると精度がすごく悪い。
画像のアーキファクトなどのノイズを補正するantialiasがResize()だとデフォルトでTrue()になっており、interpolate()だとデフォルトでFalseになっているのが原因でした。
デフォルト引数に気をつけるのはもちろん、エラーが解決したときは理由も考えるようにしましょう。