Il s'agit d'un port de la mise en œuvre officielle de la distance de création de Fréchet à Pytorch. Voir https://github.com/bioinf-jku/ttur pour l'implémentation d'origine à l'aide de TensorFlow.
Le FID est une mesure de la similitude entre deux ensembles de données d'images. Il a été démontré qu'il était bien en corrélation avec le jugement humain de la qualité visuelle et est le plus souvent utilisé pour évaluer la qualité des échantillons de réseaux adversaires génératifs. Le FID est calculé en calculant la distance de Fréchet entre deux Gaussiens adaptés à des représentations du réseau de création.
D'autres informations et une évaluation indépendante du score FID peuvent être trouvées dans les Gans créés égaux? Une étude à grande échelle.
Les poids et le modèle sont exactement les mêmes que dans l'implémentation officielle de Tensorflow, et ont été testés pour donner des résultats très similaires (par exemple, une erreur absolue de .08 et une erreur relative 0.0009 sur LSUN, en utilisant des images générées par progan). Cependant, en raison des différences dans la mise en œuvre de l'interpolation d'image et les backends de la bibliothèque, les résultats FID diffèrent toujours légèrement de l'implémentation d'origine. Donc, si vous signalez les scores FID dans votre article et que vous voulez qu'ils soient exactement comparables aux scores FID signalés dans d'autres articles, vous devriez envisager d'utiliser l'implémentation officielle de TensorFlow.
Installer à partir de PIP:
pip install pytorch-fid
Exigences:
Pour calculer le score FID entre deux ensembles de données, où les images de chaque ensemble de données sont contenues dans un dossier individuel:
python -m pytorch_fid path/to/dataset1 path/to/dataset2
Pour exécuter l'évaluation sur GPU, utilisez l'indicateur --device cuda:N , où N est l'index du GPU à utiliser.
Dans la différence par rapport à l'implémentation officielle, vous pouvez choisir d'utiliser une couche de fonctionnalité différente du réseau de création au lieu de la couche pool3 par défaut. Comme les caractéristiques de la couche inférieure ont encore une mesure spatiale, les caractéristiques sont d'abord la moyenne mondiale groupée à un vecteur avant d'estimer la moyenne et la covariance.
Cela peut être utile si les ensembles de données que vous souhaitez comparer ont moins que les images 2048 autrement requises. Notez que cela modifie l'ampleur du score FID et vous ne pouvez pas les comparer avec les scores calculés sur une autre dimensionnalité. Les scores résultants pourraient également ne plus être en corrélation avec la qualité visuelle.
Vous pouvez sélectionner la dimensionnalité des fonctionnalités à utiliser avec l'indicateur --dims N , où n est la dimensionnalité des fonctionnalités. Les choix sont:
.npz compatible à partir d'un ensemble de données Un cas d'utilisation fréquent consistera à comparer plusieurs modèles avec un ensemble de données original. Pour enregistrer la formation plusieurs fois sur l'ensemble de données d'origine, il est également possible de générer une archive .npz compatible à partir d'un ensemble de données. Cela se fait en utilisant n'importe quelle combinaison des arguments mentionnés précédemment avec l'ajout du drapeau --save-stats . Par exemple:
python -m pytorch_fid --save-stats path/to/dataset path/to/outputfile
Le fichier de sortie peut ensuite être utilisé à la place du chemin d'accès à l'ensemble de données d'origine pour d'autres comparaisons.
Si vous utilisez ce référentiel dans votre recherche, envisagez de le citer en utilisant l'entrée Bibtex suivante:
@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}},
}
Cette implémentation est concédée sous licence Apache 2.0.
FID a été présenté par Martin Heusel, Hubert Ramsauer, Thomas Unterhiner, Bernhard Nessler et Sepp Hochreiter dans "Gans formé par une règle de mise à jour de temps de temps converge vers un équilibre de Nash local", voir https://arxiv.org/abs/1706.08500
L'implémentation originale est de l'Institut de bioinformatique, JKU Linz, sous licence Apache Licence 2.0. Voir https://github.com/bioinf-jku/ttur.