vits训练时发生报错

vits模型每次训练到1 epoch [87%]的时候就会报错RuntimeError: PytorchStreamReader failed reading zip archive: failed finding central directory

img

img

基于ChatGPT的回答:
这个错误通常是由于文件损坏或文件路径错误导致的。您可以尝试以下步骤来解决问题:

  • 检查文件是否完整且未损坏。您可以尝试重新下载或从备份中恢复文件。
  • 检查您的文件路径是否正确。确保您正在读取正确的文件,并且文件路径中没有任何拼写错误或其他错误。
  • 如果您使用的是压缩文件,请确保您已正确解压缩文件。如果解压缩时出现任何错误,请尝试使用其他解压缩工具或重新下载文件。

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
这个错误提示表明在读取PyTorch模型文件时发生了错误,可能是由于模型文件已经损坏或者读取路径不正确导致的。以下是一些可能的解决方案:

  1. 检查模型文件:确保您正在读取正确的模型文件,并且该文件没有损坏。您可以尝试重新下载模型文件,或者使用其他工具检查该文件是否损坏。

  2. 检查文件路径:确保您正在使用正确的文件路径来读取模型文件。如果您正在使用相对路径,请确保当前工作目录正确。

  3. 尝试使用不同的读取方式:尝试使用不同的方式来读取模型文件,例如使用Python的pickle模块或第三方库h5py来读取模型文件。

  4. 更新PyTorch版本:如果您正在使用旧版的PyTorch,尝试升级到最新版本,可能已经修复了该问题。

如果以上方法都无法解决问题,您可以尝试重新训练模型,或者查看PyTorch的文档和社区论坛以获取更多帮助。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

RuntimeError: PytorchStreamReader failed reading zip archive: failed finding central directory 这个错误通常与 PyTorch 在尝试加载模型时遇到损坏或不完整的文件有关。在您的情况下,这可能是由于以下原因之一导致的:

  1. 模型文件损坏:下载或保存的模型文件可能已损坏或不完整。尝试重新下载模型文件并替换现有文件。
  1. 硬盘空间不足:训练过程中,模型可能会尝试写入临时文件或检查点,如果硬盘空间不足,可能导致文件损坏。请检查您的硬盘空间,并确保有足够的可用空间。
  1. 训练中断:如果训练过程在 1 epoch 的 87% 时意外中断,可能会导致模型文件不完整。请确保您的训练环境稳定,可以考虑添加检查点和恢复功能,以便在训练意外中断时能够从上次的进度恢复。
  1. 文件访问权限问题:请确保您具有读取和写入模型文件所在目录的权限。您可以尝试将模型文件移动到其他目录,或使用 chmod 命令更改文件权限。
  1. 兼容性问题:请确保您使用的 PyTorch 版本与用于训练模型的版本兼容。可能需要更新或降级您的 PyTorch 版本以解决此问题。

为了解决这个问题,您可以尝试以下操作:

  • 确保模型文件完整且未损坏。

  • 检查硬盘空间并释放空间。

  • 确保训练过程稳定并具有检查点和恢复功能。

  • 确保具有适当的文件访问权限。

  • 检查并更新 PyTorch 版本。

希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多关于您的训练环境和设置的详细信息,以便我们能够更好地帮助您。

  • 这篇博客: VIT实战总结:非常简单的VIT入门教程,一定不要错过中的 生成数据集 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 我们整理还的图像分类的数据集结构是这样的

    data
    ├─Black-grass
    ├─Charlock
    ├─Cleavers
    ├─Common Chickweed
    ├─Common wheat
    ├─Fat Hen
    ├─Loose Silky-bent
    ├─Maize
    ├─Scentless Mayweed
    ├─Shepherds Purse
    ├─Small-flowered Cranesbill
    └─Sugar beet
    

    pytorch和keras默认加载方式是ImageNet数据集格式,格式是

    ├─data
    │  ├─val
    │  │   ├─Black-grass
    │  │   ├─Charlock
    │  │   ├─Cleavers
    │  │   ├─Common Chickweed
    │  │   ├─Common wheat
    │  │   ├─Fat Hen
    │  │   ├─Loose Silky-bent
    │  │   ├─Maize
    │  │   ├─Scentless Mayweed
    │  │   ├─Shepherds Purse
    │  │   ├─Small-flowered Cranesbill
    │  │   └─Sugar beet
    │  └─train
    │      ├─Black-grass
    │      ├─Charlock
    │      ├─Cleavers
    │      ├─Common Chickweed
    │      ├─Common wheat
    │      ├─Fat Hen
    │      ├─Loose Silky-bent
    │      ├─Maize
    │      ├─Scentless Mayweed
    │      ├─Shepherds Purse
    │      ├─Small-flowered Cranesbill
    │      └─Sugar beet
    

    新增格式转化脚本makedata.py,插入代码:

    import glob
    import os
    import shutil
    
    image_list=glob.glob('data1/*/*.png')
    print(image_list)
    file_dir='data'
    if os.path.exists(file_dir):
        print('true')
        #os.rmdir(file_dir)
        shutil.rmtree(file_dir)#删除再建立
        os.makedirs(file_dir)
    else:
        os.makedirs(file_dir)
    
    from sklearn.model_selection import train_test_split
    
    trainval_files, val_files = train_test_split(image_list, test_size=0.3, random_state=42)
    
    train_dir='train'
    val_dir='val'
    train_root=os.path.join(file_dir,train_dir)
    val_root=os.path.join(file_dir,val_dir)
    for file in trainval_files:
        file_class=file.replace("\\","/").split('/')[-2]
        file_name=file.replace("\\","/").split('/')[-1]
        file_class=os.path.join(train_root,file_class)
        if not os.path.isdir(file_class):
            os.makedirs(file_class)
        shutil.copy(file, file_class + '/' + file_name)
    
    for file in val_files:
        file_class=file.replace("\\","/").split('/')[-2]
        file_name=file.replace("\\","/").split('/')[-1]
        file_class=os.path.join(val_root,file_class)
        if not os.path.isdir(file_class):
            os.makedirs(file_class)
        shutil.copy(file, file_class + '/' + file_name)
    

这个错误通常意味着 PyTorch 在读取您的训练模型时出现了问题,可能是因为模型文件损坏或未正确保存。下面是一些您可以尝试的解决方案:
检查模型文件是否存在问题:可以尝试打开模型文件,检查是否存在异常。如果模型文件损坏,您可以尝试从备份中恢复模型文件。
检查 PyTorch 版本是否与您的代码兼容:请确保您的 PyTorch 版本与您的代码兼容。您可以尝试降低 PyTorch 版本,或升级到与您的代码兼容的最新版本。
检查是否存在硬件问题:请确保您的计算机硬件正常工作。您可以尝试重新启动计算机,并使用其他程序测试计算机的稳定性。
尝试重新安装 PyTorch:您可以尝试重新安装 PyTorch,并确保您的代码与最新版本的 PyTorch 兼容。

引用chatGPT作答,这个错误通常表示您的模型文件已损坏或不完整,导致无法读取压缩文件中的中央目录。

您可以尝试以下步骤来解决此问题:

1.检查您的模型文件是否已完全下载并且未被破坏。您可以尝试重新下载模型文件并使用下载管理器的校验和来验证文件完整性。

2.如果您使用的是云端存储服务(如Google Drive),请确保您已登录到正确的帐户并且文件具有正确的共享权限。

3.您可以尝试使用其他的压缩工具来解压缩您的模型文件,例如WinRAR或7zip。

4.最后,您可以尝试使用其他的 PyTorch 版本或更改您的代码逻辑,以避免可能导致文件损坏的问题。

希望这些方法可以帮助您解决问题。