weixin_39012348 2024-04-17 17:37 采纳率: 0%
浏览 14

训练Latent diffusion的autoencoder时,报错:TypeError: __init__() got an unexpected keyword argument 'size'

训练Latent diffusion的autoencoder时,报错:TypeError: init() got an unexpected keyword argument 'size',debug发现size是来自配置文件autoencoder_kl_32x32x4.yaml
错误是这样的:

img

img

请问有没有遇到过这样的问题,这个问题该如何解决呢

  • 写回答

3条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-04-17 17:55
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题描述: 训练Latent diffusion的autoencoder时,报错:TypeError: init() got an unexpected keyword argument 'size',debug发现size是来自配置文件autoencoder_kl_32x32x4.yaml。 错误截图: img img 解决方案: 从报错信息看,是代码在执行 init() 函数的时候传入了一个没有预期的参数 size,这个参数是从 YAML 配置文件 autoencoder_kl_32x32x4.yaml 中传入的。因此,需要检查一下代码中的 init() 函数,看一看是否接收了这个 size 参数,如果没有,则应该把这个参数加入到函数参数中。 示例代码:
    class Decoder(nn.Module):
        def __init__(self, latent_dim, hidden_dims, size):  # 加入了 size 参数
            super(Decoder, self).__init__()
            hidden_dims.append(latent_dim)
            modules = []
            for i in range(len(hidden_dims) - 1):
                modules.append(nn.Linear(hidden_dims[i], hidden_dims[i + 1]))
                modules.append(nn.ReLU(inplace=True))
            self.decoder = nn.Sequential(*modules)
            self.sigmoid = nn.Sigmoid()
            self.size = size  # 新增的 size 参数
        def forward(self, z):
            x = self.decoder(z)
            x = self.sigmoid(x.view(self.size))  # 使用新增的 size 参数
            return x
    

    在代码中,我们新增了 size 参数,并在 forward() 函数中使用了这个参数。这样就可以解决这个问题了。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月17日

悬赏问题

  • ¥15 关于#python#的问题:在跑ldsc数据整理的时候一直抱这种错误,要么--out识别不了参数,要么--merge-alleles识别不了参数(操作系统-linux)
  • ¥15 PPOCRLabel
  • ¥15 网友们我该怎么办啊,急
  • ¥15 混合键合键合机对准标识
  • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
  • ¥15 目标跟踪,计算机视觉
  • ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
  • ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?
  • ¥200 C++表格文件处理-悬赏
  • ¥15 Windows Server2016本地登录失败