PyTorch .ckpt文件转.bin文件报错,求解决方案
解决PytorchStreamReader读取ckpt文件失败的问题
出现RuntimeError: PytorchStreamReader failed reading zip archive: failed finding central directory错误,本质是PyTorch无法识别你的ckpt文件为有效的zip格式 checkpoint,常见原因及解决方法如下:
检查文件完整性
先确认checkpoint.ckpt是否完整:对比文件大小与官方提供的原文件大小,若不一致,说明下载过程中出现中断或文件传输损坏,重新下载即可。验证文件格式
PyTorch的ckpt本质是zip压缩包,尝试用解压工具(如7-Zip、WinRAR)打开该文件。如果解压工具提示文件损坏或不是有效压缩包,说明文件本身格式错误,要么是被错误重命名,要么是源文件损坏。适配非标准ckpt格式(如Lightning保存的文件)
如果你的ckpt是用PyTorch Lightning保存的,直接用torch.load可能无法正确解析,改用Lightning的加载方法:from pytorch_lightning import LightningModule # 替换成你自己的模型类 class YourModel(LightningModule): # 模型定义... model = YourModel.load_from_checkpoint("checkpoint.ckpt") params = model.state_dict() torch.save(params, "model.bin")尝试修复损坏的压缩文件
若确认是zip压缩包损坏,可使用7-Zip的「修复压缩文件」功能:右键点击ckpt文件 → 7-Zip → 修复压缩文件,生成修复后的文件后再尝试加载。
内容的提问来源于stack exchange,提问作者BehicMV
相关产品推荐
相关产品推荐

