超解像度再構成 - SESR ネットワークのトレーニングと推論テスト (詳細なグラフィック チュートリアル)

最近、超軽量超解像再構成ネットワークSESRを学びましたが、その効果は悪くありません。
ここに画像の説明を挿入します

1. ソースコードパッケージ

SESR公式サイトのアドレスは、公式サイトです。

自分で調整したソースコードのパッケージアドレスは、SESR完全パッケージ抽出コード:b80mです。

用紙の宛名:用紙

私が提供したソース コード パッケージを使用することをお勧めします。多くの場所にコメントしましたが、簡単にできるようです。推論テスト スクリプトも自分で追加しました。

ソース コード パッケージをダウンロードして解凍すると、次のようになります。

ここに画像の説明を挿入します

2. データセットの準備

データセットを取得するには 2 つの方法があります。

2.1 公式サイトのダウンロード

ソース コード パッケージ内のスクリプト ファイル train.py を直接実行すると、最初に div2k データ セットが自動的にダウンロードされますが、ダウンロードは非常に遅く、高解像度のデータ セットは 3G 以上であり、ダウンロードは簡単です。デフォルトでは、システムの C ドライブにダウンロードされます。具体的なパスは次のとおりです。

C:\Users\Administrator\tensorflow_datasets\downloads. ダウンロードに失敗するたびに、再度実行するとシリアルコードが再生成されて再度ダウンロードされてしまい非常に面倒です。

次のように:
ここに画像の説明を挿入します

2.2 ネットワークディスクのダウンロード

ダウンロードして整理したデータ セットを提供しました。ファイル ストレージの対応関係を整理しました。学者は直接ダウンロードしてインポートできます。ダウンロード リンクは: ネットワーク ディスク ダウンロード、抽出コードは: 32d4

3. トレーニング環境の構成

ネットワーク構造は TensorFlow フレームワークで実行されており、TensorFlow のバージョンは 2.3 ですが、パッケージ バージョンの tensorflow_datasets==4.1、Pyhton バージョン 3.6 もあります。

多くの落とし穴を経て、最終的に自分で調整したバージョンは TensorFlow-gpu でした。2.9、Python 3.7 バージョン、tensorflow_datasets4.8.2、次のように:

ここに画像の説明を挿入します

TensorFlow-GPU をインストールしたら、まず GPU が正常に呼び出せるかどうかテスト方法を参照してください:リンクの説明を追加

4. トレーニング

4.1 設定パラメータの変更

train.py ファイルを開き、コンピューターの状況に応じていくつかの構成パラメーターを変更します。

ここに画像の説明を挿入します

上の図に対応する train.py スクリプトの変更は次のとおりです。

ここに画像の説明を挿入します

4.2 データセットのインポート

私が提供したデータセットをダウンロードした後、tensorflow_datasets フォルダー全体を解凍してデータ フォルダーに配置し、tensorflow_datasets フォルダーへのパスを変数 data_dir に割り当てます。コード内の具体的な変更は次のとおりです。

ここに画像の説明を挿入します

4.3 2x超解像度ネットワークトレーニング

ニーズに応じてトレーニングの深さを選択してください。

4.3.1 SESR-M5ネットワークのトレーニング

ここで、m = 5、f = 16、feature_size = 256、折り畳まれた線形ブロックの場合:

python train.py

4.3.2 SESR-M5ネットワークのトレーニング

m = 5、f = 16、feature_size = 256、拡張線形ブロック:

python train.py --linear_block_type expanded

4.3.3 SESR-M11ネットワークのトレーニング

ここで、m = 11、f = 16、feature_size = 64、折り畳まれた線形ブロックの場合:

python train.py --m 11 --feature_size 64

4.4.4 SESR-XL ネットワークのトレーニング

ここで、m = 11、f = 16、feature_size = 64、折り畳まれた線形ブロックの場合:

python train.py --m 11 --int_features 32 --feature_size 64

4.4 2倍超解像ネットワークモデル

上記の手順でトレーニングした後、重みファイルとモデルは自動的にログ ファイルに保存されます。私自身がトレーニングしたモデルの重みファイルはソース コード パッケージにパッケージ化されており、研究者は次のように直接使用できます。

ここに画像の説明を挿入します
上記の各ファイルによって表される内容は次のとおりです。

.pb: プロトコル バッファーを表します。これは、モデル構造とパラメーターのバイナリ シリアル化ファイルです。モデルのネットワーク構造、変数、重み、その他の情報を保存します。モデルのメインファイルが永続化されます。

.data-00000-of-00001: モデル変数の値、つまりモデルの重みパラメータの値を格納します。モデルのトレーニングが完了した後に保存された重み。

.index: テンソル名、次元などのパラメータ テンソルのメタ情報を保存するインデックス ファイル。データ ファイル内のテンソル データを見つけるために使用されます。

チェックポイント ファイル: モデルのトレーニング中にパラメーターを保存し、トレーニングを再開するために使用されます。

4.5 モデルの保存形式を変更する

上記はデフォルトの保存方法ですが、上級者が他の形式で保存方法を変更する必要がある場合、具体的な変更は次のとおりです。

ここに画像の説明を挿入します

4.6 4x超解像度ネットワークトレーニング

4x 超解像度ネットワークは 2x 超解像度モデルに基づいてトレーニングする必要があります。ネットワークの深さは自分で選択できます。

4.6.1 SESR-M5ネットワークのトレーニング

ここで、m = 5、f = 16、feature_size = 256、折り畳まれた線形ブロックの場合:

python train.py --scale 4

4.6.2 SESR-M5ネットワークのトレーニング

m = 5、f = 16、feature_size = 256、拡張線形ブロック:

python train.py --linear_block_type expanded --scale 4

4.6.3 SESR-M11ネットワークのトレーニング

ここで、m = 11、f = 16、feature_size = 64、折り畳まれた線形ブロックの場合:

python train.py --m 11 --feature_size 64 --scale 4

4.6.4 SESR-XL ネットワークのトレーニング

ここで、m = 11、f = 16、feature_size = 64、折り畳まれた線形ブロックの場合:

python train.py --m 11 --int_features 32 --feature_size 64 --scale 4

4.7 4x超解像ネットワークモデル

トレーニング後、モデルは次のようにログ ファイルに自動的に保存されます。

ここに画像の説明を挿入します

5. 定量的なトレーニング

次のコマンドを実行して、トレーニング中にネットワークをデバッグし、TFLITE を生成します (x2 SISR、SESR-M5 ネットワークの場合)。

python train.py --quant_W --quant_A --gen_tflite

5.1 定量的トレーニングモデル

トレーニング後、次のように logs/x2_models ファイルに自動的に保存されます。

ここに画像の説明を挿入します

6. モデル推論テスト

推論スクリプトは私が書いたものですが、具体的な使い方は以下の通りです。

ここに画像の説明を挿入しますここに画像の説明を挿入します
ここに画像の説明を挿入します

7. スーパースコアエフェクト

ここに画像の説明を挿入します
ここに画像の説明を挿入します

8. まとめ

上記は、超解像再構成 - SESR ネットワークのトレーニングと推論テストに関する詳細なグラフィック チュートリアルです。要約するのは簡単ではありません。たくさんのサポートをお願いします。ありがとうございます。ディスカッション用にメッセージを残していただけると幸いです。

おすすめ

転載: blog.csdn.net/qq_40280673/article/details/134062403