
Этот репозиторий обеспечивает точные , эффективные и расширяемые реализации популярных метрик для оценки генеративной модели, включая:
Численная точность : в отличие от многих других переосмыслений, значения, создаваемые сопоставлением о том, что справочные реализации, вплоть до того, как машина плавающей запятой. Это позволяет использовать Forcel-Fidelity для отчетности метриков в документах вместо рассеянных и медленных эталонных реализаций. Узнайте больше о численной точности
Эффективность : совместное использование функций между различными метриками экономит время переработки, а дополнительный уровень кэширования позволяет избежать перечисления функций и статистики, когда это возможно. Высокая эффективность позволяет использовать факел в петлю обучения, например, в конце каждой эпохи. Узнайте больше об эффективности
Расширение : выходя за рамки генерации 2D изображений легко из -за высокой модульности и абстракции метрик из входных данных, моделей и экстракторов объектов. Например, можно отменить экстрактор функции stectionV3 на один, принимающий объемы 3D -сканирования, например, используется в МРТ. Узнайте больше о расширяемости
TLDR; Быстрая и надежная оценка GAN в Pytorch
pip install torch-fidelityСм. Также: Установка последнего кода GitHub
Ниже приведены три примера использования неправды для факела для оценки метрик из командной строки. Смотрите больше примеров в документации.
Начало оценки обучения CIFAR-10 Split:
> fidelity --gpu 0 --isc --input1 cifar10-train
inception_score_mean: 11.23678
inception_score_std: 0.09514061 Начало оценка каталога изображений, хранящихся в ~/images/ :
> fidelity --gpu 0 --isc --input1 ~ /images/ Эффективное вычисление ISC и PPL для input1 и FID, KID, PRC между генеративной моделью, хранящейся в ~/generator.onnx и Cifar-10 Training Split:
> 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 занимает всего 2 минуты 26 секунд на графическом процессоре NVIDIA P100, по сравнению с> 10 мин, если использование исходных кодовых баз. Таким образом, вычислительные показатели 20 раз в течение всего тренировочного цикла делают общее время обучения дольше всего на час.
В следующем примере предположим, что безусловные настройки генерации изображений с CIFAR-10 и генеративным generator модели, который принимает 128-мерный стандартный стандартный вектор нормального шума.
Во -первых, импортируйте модуль:
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 не будет доступен, если вышеуказанный путь не будет добавлен в переменную среды Path. Если его модифицировать нежелательно, инструмент все еще может быть вызван своим полным путем: <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}
}