运行clipit触发PyTorch requires_grad_不支持ScriptModules报错如何修复
报错原因
这个报错是PyTorch版本不兼容导致的:你使用的clipit、taming-transformers均为多年未更新的旧仓库,适配的是PyTorch 1.x版本,而当前Google Colab默认搭载的是PyTorch 2.x版本。PyTorch 2.x对TorchScript导出的ScriptModule对象做了接口限制,不允许直接调用requires_grad_()方法修改梯度开关状态,旧代码中对加载的VQGAN预训练Script模型调用该方法时就会触发报错。
修复方案
你可以选择以下任意一种方案解决问题:
- 方案1:降级PyTorch到兼容版本
在你现有环境配置代码块的最开头,加入以下代码安装PyTorch 1.12.1版本,之后重启Colab运行时再重新执行所有代码即可:!pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113 - 方案2:修改clipit源码适配高版本PyTorch
无需降级PyTorch,找到clipit目录下的源码文件,搜索到加载VQGAN模型后调用requires_grad_(False)的代码行,将其替换为逐参数设置梯度状态的代码即可:# 替换前的代码 # model.requires_grad_(False) # 替换后的代码 for param in model.parameters(): param.requires_grad = False
内容的提问来源于stack exchange,提问作者metalaureate
相关产品推荐
相关产品推荐

