Esta é uma porta da implementação oficial da distância de Frécchet para Pytorch. Consulte https://github.com/bioinf-jku/ttur para obter a implementação original usando o tensorflow.
O FID é uma medida de similaridade entre dois conjuntos de dados de imagens. Foi demonstrado que se correlaciona bem com o julgamento humano da qualidade visual e é mais frequentemente usado para avaliar a qualidade de amostras de redes adversárias generativas. O FID é calculado calculando a distância de Fréchet entre dois gaussianos instalados para apresentar representações da rede inicial.
Mais informações e uma avaliação independente da pontuação do FID podem ser encontradas em Gans são criadas iguais? Um estudo em larga escala.
Os pesos e o modelo são exatamente os mesmos da implementação oficial do tensorflow e foram testados para fornecer resultados muito semelhantes (por exemplo .08 Erro absoluto e 0.0009 erro relativo no LSUN, usando imagens geradas por progan). No entanto, devido a diferenças na implementação da interpolação da imagem e nos back -ends da biblioteca, os resultados do FID ainda diferem ligeiramente da implementação original. Portanto, se você relatar as pontuações do FID em seu artigo e deseja que elas sejam exatamente comparáveis às pontuações do FID relatadas em outros trabalhos, considere usar a implementação oficial do TensorFlow.
Instale de Pip:
pip install pytorch-fid
Requisitos:
Para calcular a pontuação do FID entre dois conjuntos de dados, onde as imagens de cada conjunto de dados estão contidas em uma pasta individual:
python -m pytorch_fid path/to/dataset1 path/to/dataset2
Para executar a avaliação na GPU, use o sinalizador --device cuda:N , onde N é o índice da GPU para usar.
Em diferença para a implementação oficial, você pode optar por usar uma camada de recurso diferente da rede inicial em vez da camada pool3 padrão. Como as características da camada mais baixa ainda têm extensão espacial, os recursos são os primeiros reúnios médios globais em um vetor antes de estimar a média e a covariância.
Isso pode ser útil se os conjuntos de dados que você deseja comparar tiverem menos do que as 2048 imagens necessárias. Observe que isso altera a magnitude da pontuação do FID e você não pode compará -los com as pontuações calculadas em outra dimensionalidade. As pontuações resultantes também não podem mais se correlacionar com a qualidade visual.
Você pode selecionar a dimensionalidade dos recursos a serem usados com o sinalizador --dims N , onde n é a dimensionalidade dos recursos. As escolhas são:
.npz compatível a partir de um conjunto de dados Um caso de uso frequente será comparar vários modelos com um conjunto de dados original. Para economizar treinamento várias vezes no conjunto de dados original, também há a capacidade de gerar um arquivo .npz compatível a partir de um conjunto de dados. Isso é feito usando qualquer combinação dos argumentos mencionados anteriormente com a adição do sinalizador --save-stats . Por exemplo:
python -m pytorch_fid --save-stats path/to/dataset path/to/outputfile
O arquivo de saída pode ser usado no lugar do caminho para o conjunto de dados original para comparações adicionais.
Se você usar este repositório em sua pesquisa, considere citá -lo usando a seguinte entrada do 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}},
}
Esta implementação está licenciada sob a licença Apache 2.0.
O FID foi introduzido por Martin Heusel, Hubert Ramsauer, Thomas Unterthiner, Bernhard Nessler e Sepp Hochreiter em "Gans treinados por uma regra de atualização em duas escalas convergentes para um equilíbrio local de nash", consulte https://arxiv.org/abs/1706.08.0 "
A implementação original é do Instituto de Bioinformática, JKU Linz, licenciado sob a licença Apache 2.0. Veja https://github.com/bioinf-jku/ttur.