
이 저장소는 다음을 포함하여 생성 모델 평가를 위해 인기있는 메트릭의 정확 하고 효율적 이며 확장 가능한 구현을 제공합니다.
수치 정밀도 : 다른 많은 상환과 달리 Torch Fidelity에 의해 생성 된 값은 Floating Point의 기계 정밀도까지 참조 구현을 일치시킵니다. 이를 통해 흩어져 있고 느린 참조 구현 대신 논문의 메트릭을보고하기 위해 Torch Fidelity를 사용할 수 있습니다. 수치 정밀도에 대해 자세히 알아보십시오
효율성 : 다양한 메트릭 간의 기능 공유는 재 계산 시간을 절약하고 추가 캐싱 수준은 가능할 때마다 기능과 통계를 회복시키는 것을 피합니다. 고효율은 예를 들어 모든 시대의 끝에서 훈련 루프에서 Torch Fidelity를 사용할 수 있습니다. 효율성에 대해 자세히 알아보십시오
확장 성 : 입력 데이터, 모델 및 기능 추출기의 메트릭의 높은 모듈성과 추상화로 인해 2D 이미지 생성을 넘어서는 것은 쉽습니다. 예를 들어, MRI에서 사용 된 것과 같은 3D 스캔 볼륨을 수락하는 One을 위해 InceptionV3 기능 추출기를 교체 할 수 있습니다. Extensibility에 대해 자세히 알아보십시오
tldr; Pytorch의 빠르고 신뢰할 수있는 GAN 평가
pip install torch-fidelity참조 : 최신 Github 코드 설치
다음은 명령 줄에서 메트릭을 평가하기 위해 Torch Fidelity를 사용하는 세 가지 예입니다. 문서에서 더 많은 예를 참조하십시오.
CIFAR-10 교육 분할의 시작 점수 :
> fidelity --gpu 0 --isc --input1 cifar10-train
inception_score_mean: 11.23678
inception_score_std: 0.09514061 ~/images/ 에 저장된 이미지 디렉토리의 시작 점수
> fidelity --gpu 0 --isc --input1 ~ /images/ input1 에 대한 ISC 및 PPL의 효율적인 계산, ~/generator.onnx 및 cifar-10 훈련에 저장된 생성 모델 사이의 PRC, FID, PRC의 효율적인 계산 : 분할 :
> fidelity
--gpu 0
--isc
--fid
--kid
--ppl
--prc
--input1 ~ /generator.onnx
--input1-model-z-type normal
--input1-model-z-size 128
--input1-model-num-samples 50000
--input2 cifar10-train 참조 : 기타 사용 예제
변형 할 때 생성 모델의 성능을 추적 할 때, 계산 시간이 길기 때문에 모든 시대가 엄청나게 비싸면 지표를 평가합니다. torch_fidelity 가능할 때마다 일반적인 기능과 금속 당 통계를 다시 사용하지 않도록 캐싱을 최대한 활용 하여이 문제를 해결합니다. 50000 32x32 생성 된 이미지 및 cifar10-train 에 대한 모든 메트릭을 계산하는 것은 원래 코드베이스를 사용하는 경우> 10 분에 비해 NVIDIA P100 GPU에서 2 분 26 초 밖에 걸리지 않습니다. 따라서 전체 교육주기 동안 메트릭을 20 배 계산하면 전체 교육 시간이 1 시간 더 길어집니다.
다음 예에서는 CIFAR-10을 사용하여 무조건 이미지 생성 설정과 128 차원 표준 정상 노이즈 벡터를 사용하는 생성 모델 generator 가정합니다.
먼저 모듈 가져 오기 :
import torch_fidelity에포크 평가가 끝날 때 다음 줄을 추가하십시오.
wrapped_generator = torch_fidelity . GenerativeModelModuleWrapper ( generator , 128 , 'normal' , 0 )
metrics_dict = torch_fidelity . calculate_metrics (
input1 = wrapped_generator ,
input2 = 'cifar10-train' ,
cuda = True ,
isc = True ,
fid = True ,
kid = True ,
prc = True ,
verbose = False ,
)계산 된 메트릭이있는 결과 사전은 Tensorboard, Wandb 또는 콘솔에 직접 기록 할 수 있습니다.
print ( metrics_dict )산출:
{
'inception_score_mean' : 11.23678 ,
'inception_score_std' : 0.09514061 ,
'frechet_inception_distance' : 18.12198 ,
'kernel_inception_distance_mean' : 0.01369556 ,
'kernel_inception_distance_std' : 0.001310059
'precision' : 0.51369556 ,
'recall' : 0.501310059
}다음을 참조하십시오 : 전체 API 참조
완전한 훈련 예제는 sngan_cifar10.py를 참조하십시오.
예제에서 고정 발전기 잠복의 진화 :

예제 훈련으로 인한 생성기 체크 포인트는 여기에서 다운로드 할 수 있습니다.
위 경로가 경로 환경 변수에 추가되지 않으면 독립형 fidelity 도구를 사용할 수 없음을 제안합니다. 수정이 바람직하지 않다면 도구는 여전히 전체 경로로 호출 할 수 있습니다 : <SOMEPATH>/fidelity .
횃불 충실도에 의존하는 작품의 평가 프로토콜을 강화하기 위해 인용이 권장됩니다. 이 저장소를 인용 할 때 재현성을 보장하려면 다음 bibtex를 사용하십시오.
@misc{obukhov2020torchfidelity,
author={Anton Obukhov and Maximilian Seitzer and Po-Wei Wu and Semen Zhydenko and Jonathan Kyl and Elvis Yu-Jing Lin},
year=2020,
title={High-fidelity performance metrics for generative models in PyTorch},
url={https://github.com/toshas/torch-fidelity},
publisher={Zenodo},
version={v0.3.0},
doi={10.5281/zenodo.4957738},
note={Version: 0.3.0, DOI: 10.5281/zenodo.4957738}
}