You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pytorch-fid计算5000张图像数据集FID时遇运行时错误求助

使用pytorch-fid计算FID值的问题排查与解决

我正尝试使用pytorch-fid计算两个数据集的FID值,过程中遇到了一些问题,具体如下:

尝试1

  • 初始数据集:每个数据集包含2800张512×512的图像,其中生成图像为PNG格式,真实图像为JPG格式
  • 格式转换:使用基于ImageMagick的bash脚本将生成图像批量转为JPG:
for file in *.png
    do convert "$file" "$(basename "$file" .png).jpg"
done
  • 结果:成功计算出FID值为143.6,该数值表现较差

尝试2

  • 调整方案:认为增加图像数量可能降低FID值,改用每个数据集含5000张图像的规模;因上述bash脚本运行速度慢,改用Python脚本处理格式
  • 错误脚本(仅修改文件扩展名,未真正转换格式):
import os
directory = <PATH TO MY DIRECTORY>

files = os.listdir(directory)

# Then you rename the files
for file_name in files:
    # You give the full path of the file
    old_name = os.path.join(directory, file_name)

    # You CHANGE the extension
    new_name = old_name.replace('.jpg', '.png')
    os.rename(old_name, new_name)
  • 报错:运行失败,出现错误:
RuntimeError: Trying to resize storage that is not resizable

尝试3

  • 修正操作:将生成图像文件夹中的文件扩展名改回PNG,使用Pillow脚本真正转换图像格式为JPG,此时两个数据集均为5000张512×512的JPG图像
  • 转换脚本:
from PIL import Image
import os

path = <PATH TO MY DIRECTORY>
files=os.listdir(path)

for file in files:
    if file.endswith(".png"):
        img = Image.open(path+file)
        #print(img)
        file_name, file_ext = os.path.splitext(file)
        img.save('<PATH TO OUTPUT DIRECTORY>{}.jpg'.format(file_name))
  • 问题:仍出现相同的RuntimeError: Trying to resize storage that is not resizable错误

请问问题出在哪里?是Pillow的JPG转换存在问题吗?是否应该换回ImageMagick?恳请帮助!

补充说明

  • 后续发现低级错误:忽略了部分真实图像并非512×512的情况,修正后成功得到FID值131.02,该数值仍有待优化
  • 优化措施:采用多进程后,图像转换速度大幅提升

内容的提问来源于stack exchange,提问作者shrujaya23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 21:04:55