torch-fidelity: 精确高效的生成模型评估工具

Ray

torch-fidelity

torch-fidelity: 精确高效的生成模型评估工具

生成模型的评估是深度学习研究中至关重要的一环。在2D图像生成领域,有三种方法被广泛采用:Inception Score(IS)、Fréchet Inception Distance(FID)和Kernel Inception Distance(KID)。然而,这些指标的原始实现存在一些问题,如计算效率低下、精度不够等。torch-fidelity应运而生,旨在解决这些问题,为研究人员提供一个可靠、高效的评估工具。

主要特性

torch-fidelity具有以下几个突出特点:

  1. 精确性: 与许多其他重新实现不同,torch-fidelity产生的值与参考实现在机器精度范围内保持一致。这使得研究人员可以在论文中使用torch-fidelity报告指标,而不是依赖分散且缓慢的参考实现。

  2. 高效性: 通过在不同指标之间共享特征,避免了重复计算,大大节省了时间。此外,额外的缓存层尽可能避免重新计算特征和统计数据。这种高效性使得torch-fidelity可以在训练循环中使用,例如在每个epoch结束时计算指标。

  3. 可扩展性: 由于高度模块化和对输入数据、模型和特征提取器的抽象,torch-fidelity可以轻松地扩展到2D图像生成之外的领域。例如,可以将InceptionV3特征提取器替换为接受3D扫描体积的提取器,如MRI中使用的那样。

支持的指标

torch-fidelity目前支持以下几种流行的评估指标:

  • Inception Score (IS)
  • Fréchet Inception Distance (FID)
  • Kernel Inception Distance (KID)
  • Precision and Recall (PR)
  • Perceptual Path Length (PPL)

这些指标涵盖了生成模型评估的多个方面,能够全面地衡量模型的性能。

安装和使用

torch-fidelity的安装非常简单,只需一行命令:

pip install torch-fidelity

对于想要使用最新GitHub代码的用户,可以参考安装最新GitHub代码的说明。

torch-fidelity提供了命令行接口和Python API两种使用方式,以适应不同的使用场景。

命令行使用示例

  1. 简单示例:计算CIFAR-10训练集的Inception Score
fidelity --gpu 0 --isc --input1 cifar10-train
  1. 中等复杂度示例:计算本地图像目录的Inception Score
fidelity --gpu 0 --isc --input1 ~/images/
  1. 高级示例:计算多个指标
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 

Python API使用示例

当需要在训练循环中跟踪生成模型的性能时,使用Python API更为方便。以下是一个简单的示例:

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,
)

print(metrics_dict)

这段代码会返回一个包含各种指标的字典,可以直接记录到TensorBoard、Weights & Biases或控制台。

性能展示

Evolution of fixed generator latents

上图展示了使用torch-fidelity评估的一个生成模型在训练过程中固定潜在向量的演变过程。这种可视化方法可以直观地展示模型生成能力的提升。

结语

torch-fidelity为生成模型的评估提供了一个强大、精确且高效的工具。它不仅简化了评估过程,还确保了结果的可靠性和可重复性。对于从事生成模型研究的学者和工程师来说,torch-fidelity无疑是一个不可或缺的工具。

如果您的研究或项目中使用了torch-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}
}

通过使用torch-fidelity,研究人员可以更加专注于模型的改进和创新,而不必担心评估指标的实现细节。这个工具的出现,无疑将推动生成模型领域的快速发展。

avatar
0
0
0
相关项目
Project Cover

mobilenetv4_conv_small.e2400_r224_in1k

MobileNetV4是一个利用ImageNet-1k数据集训练的图像分类模型,具有3.8M参数和0.2 GMACs的复杂度。该模型由timm库优化,使用了与MobileNet-V4论文一致的超参数。其训练和测试图像尺寸分别为224x224和256x256,适用于移动平台。更多信息可在PyTorch Image Models和相关论文中找到。

Project Cover

BioMistral-7B-GGUF

BioMistral-7B-GGUF项目提供支持2至8位量化的GGUF格式模型文件,专为生成多语言的医学和生物文本而设计。由BioMistral创建,该模型兼容多种客户端和库,如llama.cpp,支持GPU加速。其兼容Autotrain和endpoints,可集成至LangChain环境。用户能借助如llama-cpp-python的工具实现快速下载和部署,旨在提升文本生成任务的性能,为高级对话和叙事应用提供支持。

Project Cover

yolov5m-license-plate

YOLOv5m-license-plate项目提供基于YOLOv5技术的车牌检测模型,利用Pytorch进行对象检测,适用于多种计算机视觉任务。开发者可运用简单的Python代码实现精准车牌识别,并支持通过自定义数据集进行微调以提升效果。在keremberke数据集上的精度高达0.988,适合快速、可靠的车牌检测应用。访问项目主页获取更多信息和下载。

Project Cover

HRPolicyQandA

本项目提供的GPT-2模型经过定制化训练,专注于问答数据集,旨在提高问答任务的自动响应能力。适用于构建对话系统和教育领域,但需要在重要应用中谨慎验证其输出

Project Cover

vit_base_patch16_224.orig_in21k_ft_in1k

该Vision Transformer模型经过ImageNet-21k数据集预训练并在ImageNet-1k上微调,采用86.6M参数,适用于224x224图像的分类与特征提取。最初由论文作者在JAX上训练,并由Ross Wightman移植到PyTorch环境,可应用于图像分类和嵌入场景。

Project Cover

ruBert-base

ruBert-base是一个专为俄语遮蔽填充任务优化的预训练语言模型。该模型基于Transformer架构,由SberDevices团队开发,采用BPE分词器,词典大小12万token,模型参数量1.78亿。模型使用30GB训练数据,是俄语自然语言处理领域的重要研究成果。ruBert-base遵循Apache-2.0许可证,为俄语NLP应用提供了强大的基础支持。

Project Cover

Virchow2

Virchow2是一个专门用于病理切片分析的深度学习模型,通过310万张医学图像训练而成。模型能够自动分析不同放大倍率的病理图像,提取关键特征信息,为计算病理学研究提供基础支持。其采用先进的视觉转换器架构,具备强大的图像处理能力。目前仅向学术研究机构开放使用,需要通过机构邮箱认证。

Project Cover

mobilevitv2-1.0-imagenet1k-256

MobileViTv2是一个图像分类模型,通过引入可分离自注意力机制,提升计算效率与性能。该模型在ImageNet-1k数据集上预训练,适用于大规模图像分类任务,并支持PyTorch平台。用户可使用此模型进行未处理图像的分类,或寻找适合特定任务的微调版本,为图像识别应用带来优化。

Project Cover

deepseek-coder-6.7B-base-AWQ

deepseek-coder-6.7B-base是一个在2万亿token上训练的大规模代码语言模型。采用16K窗口大小和填空任务训练,支持项目级代码补全和填充。在多个编程语言基准测试中表现优异,擅长代码补全、生成和理解。模型由87%的代码和13%的中英文自然语言构成,可支持多语言编程任务。

最新项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号