ValueError: not enough values to unpack (expected 16, got 9)

模型训练时,模型返回值数量错误:

ValueError: not enough values to unpack (expected 16, got 9)
函数或模型的返回参数错误(数目错误):在这里模型默认返回9个参数,但预期是16个。


原因分析:

`torch.squeeze() `这个函数主要对数据的维度进行压缩,去掉维数为1的的维度。 `torch.unsqueeze()`这个函数主要是对数据维度进行扩充,给指定位置加上维数为一的维度。
 # 训练一次
    losses, fake_image, real_image, input_label, L1_loss, style_loss, clothes_mask, warped, refined, CE_loss, rx, ry, cx, cy, rg, cg = model(
        Variable(data['label'].unsqueeze(0).cuda()), Variable(data['edge'].unsqueeze(0).cuda()),
        Variable(img_fore.unsqueeze(0).cuda()),
        Variable(mask_clothes.unsqueeze(0).cuda()), Variable(data['color'].unsqueeze(0).cuda()),
        Variable(all_clothes_label.unsqueeze(0).cuda()),
        Variable(data['image'].unsqueeze(0).cuda()), Variable(data['pose'].unsqueeze(0).cuda()),
        Variable(data['image'].unsqueeze(0).cuda()),
        Variable(mask_fore.unsqueeze(0).cuda()))

这里,要求返回16个参数,模型默认只返回9个。

    def forward(self, label, pre_clothes_mask, img_fore, clothes_mask, clothes, all_clothes_label, real_image, pose,
                grid, mask_fore):
        # Encode Inputs
       .....................
        return [fake_image, clothes, arm_label, L1_loss, style_loss, fake_cl, CE_loss, real_image, warped_grid]

解决方案:

将返回值数量和接受参数的变量数目改成一致。

fake_image, real_image, input_label, L1_loss, style_loss, clothes_mask, CE_loss, rgb, alpha = model(
        Variable(data['label'].unsqueeze(0).cuda()), Variable(data['edge'].unsqueeze(0).cuda()), Variable(img_fore.unsqueeze(0).cuda()),
        Variable(mask_clothes.unsqueeze(0).cuda())
        , Variable(data['color'].unsqueeze(0).cuda()), Variable(all_clothes_label.unsqueeze(0).cuda()), Variable(data['image'].unsqueeze(0).cuda()),
        Variable(data['pose'].unsqueeze(0).cuda()), Variable(data['image'].unsqueeze(0).cuda()), Variable(mask_fore.unsqueeze(0).cuda()))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柏常青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值