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