PyTorch RCAN モデルの変換

危険

ここで説明されているコードは非推奨になりました。従来のソリューションの適用を避けるため使用しないでください。下位互換性を確保するためにしばらく保持されますが、最新のアプリケーションでは使用してはなりません

このガイドでは、非推奨となった変換方法について説明します。新しい推奨方法に関するガイドは、Python チュートリアルに記載されています。

RCAN : 非常に深い残留チャネル・アテンション・ネットワークを使用した画像超解像度

モデルをダウンロードして ONNX に変換

事前トレーニングされたモデルをダウンロードするか、モデルを自身でトレーニングするには、RCAN モデル・リポジトリーの手順を参照してください。最初に、モデルを ONNX 形式に変換します。モデル・リポジトリーのルート・ディレクトリーに次の内容のスクリプトを作成して実行します。

from argparse import Namespace

import torch

from RCAN_TestCode.code.model.rcan import RCAN

config = Namespace(n_feats=64, n_resblocks=4, n_resgroups=2, reduction=16, scale=[2], data_train='DIV2K', res_scale=1,
                   n_colors=3, rgb_range=255)
net = RCAN(config)
net.eval()
dummy_input = torch.randn(1, 3, 360, 640)
torch.onnx.export(net, dummy_input, 'RCAN.onnx')

このスクリプトは ONNX モデルファイル RCAN.onnx を生成します。モデル・パラメーター (n_resblocksn_resgroups など) と値の詳細については、モデル・リポジトリーで見つけることができます。モデル変換は commit-SHA: 3339ebc59519c3bb2b5719b87dd36515ec7f3ba7 を使用してテストされました。

ONNX RCAN モデルから IR への変換

mo --input_model RCAN.onnx