Dies ist ein Hafen der offiziellen Umsetzung von Fréchet Inception Distanz zu Pytorch. In https://github.com/bioinf-jku/ttur finden Sie die ursprüngliche Implementierung mit TensorFlow.
FID ist ein Maß für die Ähnlichkeit zwischen zwei Datensätzen von Bildern. Es wurde gezeigt, dass es gut mit dem menschlichen Urteilsvermögen der visuellen Qualität korreliert und am häufigsten zur Bewertung der Qualität von Proben generativer kontroverser Netzwerke verwendet wird. FID wird berechnet, indem der Fréchet -Abstand zwischen zwei Gaußern berechnet wird, die für die Darstellung des Inception -Netzwerks angepasst sind.
Weitere Erkenntnisse und eine unabhängige Bewertung des FID -Scores finden Sie in Gans, die gleich sind? Eine groß angelegte Studie.
Die Gewichte und das Modell sind genau das gleiche wie in der offiziellen Tensorflow -Implementierung und wurden getestet, um sehr ähnliche Ergebnisse zu erzielen (z. B. .08 Absolutfehler und 0.0009 Relativfehler bei LSUN unter Verwendung von Progan -erzeugten Bildern). Aufgrund der Unterschiede in der Implementierung der Bildinterpolation und der Bibliotheks -Backends unterscheiden sich die FID -Ergebnisse jedoch immer noch geringfügig von der ursprünglichen Implementierung. Wenn Sie also FID -Scores in Ihrem Papier melden und möchten, dass sie genau vergleichbar mit FID -Scores in anderen Papieren sind, sollten Sie in Betracht ziehen, die offizielle Tensorflow -Implementierung zu verwenden.
Installieren Sie von PIP:
pip install pytorch-fid
Anforderungen:
Um den FID -Score zwischen zwei Datensätzen zu berechnen, wobei die Bilder jedes Datensatzes in einem einzelnen Ordner enthalten sind:
python -m pytorch_fid path/to/dataset1 path/to/dataset2
Um die Bewertung an der GPU auszuführen, verwenden Sie das Flag --device cuda:N , wobei N der Index der GPU ist.
Im Unterschied zur offiziellen Implementierung können Sie eine andere Funktionsebene des Inception -Netzwerks anstelle der pool3 -Ebene verwenden. Da die Merkmale der unteren Schicht noch räumlich aussterben, sind die Merkmale zuerst den globalen Durchschnitt zu einem Vektor, bevor der Mittelwert und die Kovarianz geschätzt werden.
Dies kann nützlich sein, wenn die Datensätze, die Sie vergleichen möchten, weniger als die ansonsten erforderlichen 2048 Bilder haben. Beachten Sie, dass dies die Größe des FID -Scores ändert und Sie sie nicht mit Bewertungen vergleichen können, die auf einer anderen Dimensionalität berechnet wurden. Die daraus resultierenden Bewertungen korrelieren möglicherweise auch nicht mehr mit der visuellen Qualität.
Sie können die Dimensionalität von Funktionen auswählen, die mit dem Flag --dims N verwendet werden sollen, wobei n die Dimensionalität von Merkmalen ist. Die Entscheidungen sind:
.npz -Archivs aus einem Datensatz Ein häufiger Anwendungsfall besteht darin, mehrere Modelle mit einem ursprünglichen Datensatz zu vergleichen. Um das Training mehrmals auf dem ursprünglichen Datensatz zu speichern, besteht auch die Möglichkeit, ein kompatibles .npz -Archiv aus einem Datensatz zu generieren. Dies geschieht unter Verwendung einer beliebigen Kombination der zuvor genannten Argumente mit der Hinzufügung der Flagge --save-stats . Zum Beispiel:
python -m pytorch_fid --save-stats path/to/dataset path/to/outputfile
Die Ausgabedatei kann dann anstelle des Pfades zum ursprünglichen Datensatz für weitere Vergleiche verwendet werden.
Wenn Sie dieses Repository in Ihrer Forschung verwenden, sollten Sie es unter Verwendung des folgenden Bibtex -Eintrags zitieren:
@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}},
}
Diese Implementierung ist unter der Apache -Lizenz 2.0 lizenziert.
FID wurde von Martin Heusel, Hubert Ramsauer, Thomas Unterherdiner, Bernhard Nessler und Sepp Hochreiter in "Gans trainiert von einer zweizeit-skala
Die ursprüngliche Implementierung erfolgt vom Institut für Bioinformatik, JKU Linz, lizenziert unter der Apache -Lizenz 2.0. Siehe https://github.com/bioinf-jku/ttur.