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

在SimSwap Colab中遇AttributeError:'SGD'对象无'defaults'属性求助

问题分析与解决方案

这个错误属于PyTorch版本兼容性问题,不是项目代码本身的逻辑错误,你可以自行修复,不需要等项目更新,优先推荐回退PyTorch版本的方案:

错误原因

Colab默认的PyTorch版本更新后,在torch.optim.Optimizer的__setstate__方法里新增了对defaults属性的操作,但你使用的SimSwap模型权重是用旧版本PyTorch保存的,加载时旧的SGD优化器实例没有defaults属性,因此触发了AttributeError。

修复方案(新手友好)

在Colab里执行以下步骤回退到兼容的PyTorch版本:

  1. 新建一个代码单元格,输入并运行以下命令:
    !pip uninstall -y torch torchvision torchaudio
    !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. 运行完成后,点击顶部菜单栏的Runtime -> Restart runtime,重启运行时环境。
  3. 重新运行项目的所有代码单元格,错误应该会消失。

备选方案(适合有一定基础的用户)

如果你不想回退PyTorch版本,可以找到加载模型的代码部分(也就是报错的create_model(opt)函数内部),在加载模型权重前添加兼容处理:
在加载优化器状态的代码附近,添加如下逻辑:

# 假设optimizer是加载的SGD实例
if not hasattr(optimizer, 'defaults'):
    optimizer.defaults = {'lr': 0.01, 'momentum': 0.9, 'dampening': 0, 'weight_decay': 0, 'nesterov': False, 'differentiable': False}

不过这个方案需要你定位到项目中加载优化器的具体代码位置,对新手来说门槛较高,所以优先推荐回退版本的方法。

内容的提问来源于stack exchange,提问作者Gutsman-85

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 20:50:26