kakakakakku blog

Weekly Tech Blog: Keep on Learning!

PyTorch Tutorials「(optional) Exporting a Model from PyTorch to ONNX and Running it using ONNX Runtime」を試した

PyTorch のチュートリアル「(optional) Exporting a Model from PyTorch to ONNX and Running it using ONNX Runtime」を試した❗️

pytorch.org

PyTorch に低解像度の画像を高解像度の画像に変換する「超解像モデル」のサンプルがあって,今回のチュートリアルではそのモデルを ONNX (Open Neural Network eXchange) にエクスポートして,ONNX Runtime で推論する流れをサクッと体験できる.完全に入門者の僕にピッタリの内容だった👌

github.com

学べたこと

PyTorch のモデルは torch.onnx.export() 関数で ONNX にエクスポートできる.

pytorch.org

そして onnxruntime.InferenceSession クラスの run() 関数で推論できる.今回のチュートリアルでは providersCPUExecutionProvider を指定しているけど,CUDA (Compute Unified Device Architecture) 環境があれば CUDAExecutionProvider を指定することもできる.

ort_session = onnxruntime.InferenceSession("super_resolution.onnx", providers=["CPUExecutionProvider"])

onnxruntime.ai

実行結果

PyTorch モデルを ONNX モデルにエクスポートしてから推論した.今回は猫画像🐱を超解像にする内容だった.

実行前

実行後

その他

チュートリアルの範囲外ではあるけど,Netron を使うと ONNX モデルを可視化できる.

netron.app

今回エクスポートした super_resolution.onnx を可視化してみた💡

関連チュートリアル

pytorch.org