これは、PytorchまでのFréchetInception距離の公式実装の港です。 Tensorflowを使用した元の実装については、https://github.com/bioinf-jku/tturを参照してください。
FIDは、画像の2つのデータセット間の類似性の尺度です。視覚的品質の人間の判断とよく相関することが示されており、生成敵のネットワークのサンプルの品質を評価するために最も頻繁に使用されます。 FIDは、インセプションネットワークの表現を特徴とするためにフィットした2つのガウス間のフレシェ距離を計算することによって計算されます。
FIDスコアのさらなる洞察と独立した評価は、GANが平等に作成されているのですか?大規模な研究。
重みとモデルは、公式のTensorflow実装とまったく同じであり、非常に類似した結果を得るためにテストされました(Progan生成画像を使用して、LSUNの.08絶対誤差と0.0009相対誤差)。ただし、画像補間の実装とライブラリバックエンドの違いにより、FIDの結果は元の実装とはわずかに異なります。したがって、論文でFIDスコアを報告し、他の論文で報告されているFIDスコアに正確に匹敵する場合は、公式のTensorflow実装の使用を検討する必要があります。
PIPからのインストール:
pip install pytorch-fid
要件:
2つのデータセット間でFIDスコアを計算するには、各データセットの画像が個々のフォルダーに含まれています。
python -m pytorch_fid path/to/dataset1 path/to/dataset2
GPUで評価を実行するには、Flag --device cuda:Nを使用します。ここで、 Nは使用するGPUのインデックスです。
公式の実装との違いとして、デフォルトのpool3レイヤーの代わりに、インセプションネットワークの異なる機能レイヤーを使用することを選択できます。下層の機能にはまだ空間的な範囲があるため、機能は平均と共分散を推定する前に、最初のグローバル平均をベクトルにプールされます。
これは、比較したいデータセットが、そうでなければ必要な2048画像よりも少ない場合に役立つ場合があります。これにより、FIDスコアの大きさが変更され、別の次元で計算されたスコアと比較することはできません。結果のスコアは、視覚的な品質と相関しなくなる場合もあります。
Flag --dims Nで使用する機能の次元を選択できます。ここで、nは機能の寸法です。選択肢は次のとおりです。
.npzアーカイブを生成します頻繁なユースケースは、複数のモデルを元のデータセットと比較することです。元のデータセットで複数回トレーニングを保存するために、データセットから互換性のある.npzアーカイブを生成する機能もあります。これは、前述の引数の任意の組み合わせを使用して、 --save-statsフラグの追加を使用して行われます。例えば:
python -m pytorch_fid --save-stats path/to/dataset path/to/outputfile
その後、出力ファイルを元のデータセットへのパスの代わりに使用して、さらなる比較を行うことができます。
研究でこのリポジトリを使用する場合は、次のBibtexエントリを使用して引用することを検討してください。
@misc{Seitzer2020FID,
author={Maximilian Seitzer},
title={{pytorch-fid: FID Score for PyTorch}},
month={August},
year={2020},
note={Version 0.3.0},
howpublished={url{https://github.com/mseitzer/pytorch-fid}},
}
この実装は、Apacheライセンス2.0に基づいてライセンスされています。
FIDは、Martin Heusel、Hubert Ramsauer、Thomas Unterthiner、Bernhard Nessler、Sepp Hochreiterによって「2つのタイムスケールアップデートルールがローカルナッシュ平衡に訓練されたGans」で紹介されました。
元の実装は、Apacheライセンス2.0に基づいてライセンスされているBioinformatics研究所JKU Linzによるものです。 https://github.com/bioinf-jku/tturを参照してください。