PyTorch のチュートリアル「(optional) Exporting a Model from PyTorch to ONNX and Running it using ONNX Runtime」を試した❗️
PyTorch に低解像度の画像を高解像度の画像に変換する「超解像モデル」のサンプルがあって,今回のチュートリアルではそのモデルを ONNX (Open Neural Network eXchange) にエクスポートして,ONNX Runtime で推論する流れをサクッと体験できる.完全に入門者の僕にピッタリの内容だった👌
学べたこと
PyTorch のモデルは torch.onnx.export()
関数で ONNX にエクスポートできる.
そして onnxruntime.InferenceSession
クラスの run()
関数で推論できる.今回のチュートリアルでは providers
に CPUExecutionProvider
を指定しているけど,CUDA (Compute Unified Device Architecture) 環境があれば CUDAExecutionProvider
を指定することもできる.
ort_session = onnxruntime.InferenceSession("super_resolution.onnx", providers=["CPUExecutionProvider"])
実行結果
PyTorch モデルを ONNX モデルにエクスポートしてから推論した.今回は猫画像🐱を超解像にする内容だった.
その他
チュートリアルの範囲外ではあるけど,Netron を使うと ONNX モデルを可視化できる.
今回エクスポートした super_resolution.onnx
を可視化してみた💡