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

PyTorch模型训练报AttributeError: 'list'无flatten属性的解决求助

问题解决:AttributeError: 'list' object has no attribute 'flatten'

核心错误原因

在ImageClassificationBase的validation_step方法中,错误地将包含图像和标签的整个batch(列表/元组)传入模型,而非仅传入图像张量:

predicted_label = self(batch)  # 错误:batch是(images, labels)的组合,不是单一张量

模型的forward方法预期接收图像张量(如torch.Size(128, 3, 32, 32)),但实际传入的是列表,导致调用self.flatten(xb)时触发AttributeError。

修复后的代码

将validation_step中的错误行改为传入images:

def validation_step(self, batch):
    images, labels = batch
    predicted_label = self(images)  # 修正:传入图像张量而非整个batch
    loss = F.cross_entropy(predicted_label, labels)
    acc = accuracy(predicted_label, labels)
    return {'val_loss' : loss.detach(), 'val_acc' : acc}

额外注意事项

  • 最后一行训练代码中,参数model未定义,应改为你创建的model1:
    fit(10, 0.01, model1, train_loader, val_loader)
    
  • 确保accuracy函数已正确定义(代码中未给出实现,需确认它能接收预测张量和标签并返回准确率张量)。

内容的提问来源于stack exchange,提问作者Safi Ahmed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 16:33:28