이것은 Pytorch까지의 Fréchet Inception 거리의 공식 구현의 포트입니다. Tensorflow를 사용한 원래 구현은 https://github.com/bioinf-jku/ttur를 참조하십시오.
FID는 이미지의 두 데이터 세트 사이의 유사성을 측정 한 것입니다. 그것은 시각적 품질에 대한 인간의 판단과 잘 상관 관계가있는 것으로 나타 났으며, 생성 적대적 네트워크의 샘플의 품질을 평가하는 데 가장 자주 사용됩니다. FID는 Inception Network의 특징 표현에 맞는 두 개의 가우스 사이의 Fréchet 거리를 계산하여 계산됩니다.
더 많은 통찰력과 FID 점수에 대한 독립적 인 평가가 찾을 수 있습니다. 대규모 연구.
가중치와 모델은 공식 텐서 플로 구현에서와 정확히 동일하며 매우 유사한 결과를 제공하기 위해 테스트되었습니다 (예 : Progan 생성 이미지를 사용하여 LSUN에서 .08 절대 오류 및 0.0009 상대 오류). 그러나 이미지 보간 구현 및 라이브러리 백엔드의 차이로 인해 FID 결과는 원래 구현과 약간 다릅니다. 따라서 논문에서 FID 점수를보고하고 다른 논문에서보고 된 FID 점수와 정확히 비슷 하기를 원한다면 공식 Tensorflow 구현을 고려해야합니다.
PIP에서 설치 :
pip install pytorch-fid
요구 사항 :
각 데이터 세트의 이미지가 개별 폴더에 포함 된 두 데이터 세트 간의 FID 점수를 계산하려면 다음과 같습니다.
python -m pytorch_fid path/to/dataset1 path/to/dataset2
GPU에 대한 평가를 실행하려면 플래그 --device cuda:N 사용하십시오. 여기서 N 사용할 GPU의 인덱스입니다.
공식 구현과 차이에서 기본 pool3 레이어 대신 Inception Network의 다른 기능 계층을 사용하도록 선택할 수 있습니다. 하부 층 특징은 여전히 공간적 범위를 갖기 때문에, 특징은 평균 및 공분산을 추정하기 전에 벡터에 대한 첫 번째 글로벌 평균 풀링된다.
비교하려는 데이터 세트에 필요한 2048 이미지보다 적은 경우 유용 할 수 있습니다. 이것은 FID 점수의 크기를 변화시키고 다른 차원에서 계산 된 점수와 비교할 수 없습니다. 결과 점수는 더 이상 시각적 품질과 관련이 없을 수도 있습니다.
플래그 --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 License 2.0에 따라 라이센스가 부여됩니다.
FID는 Martin Heusel, Hubert Ramsauer, Thomas Unterthiner, Bernhard Nessler 및 Sepp Hochreiter에 의해 소개되었습니다.
원래 구현은 Apache License 2.0에 따라 라이센스가 부여 된 JKU Linz의 Bioinformatics Institute의 것입니다. https://github.com/bioinf-jku/ttur를 참조하십시오.