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

PyTorch尺寸不匹配弃用错误求助:模型参数与尺寸存疑

尺寸不匹配错误的解决方案

问题根源

你的模型输出尺寸torch.Size([28, 28, 10])与目标尺寸torch.Size([28])不匹配,核心原因是分类任务的损失函数(如PyTorch的CrossEntropyLoss)要求输入为(batch_size, num_classes)的二维张量,但你的模型输出还保留了空间维度(28×28)。

具体修正步骤

  • 模型输出展平:在模型的forward方法中,全连接层之前添加特征展平操作,将空间维度压缩为一维:
    x = x.flatten(1)  # 从第1维度开始展平,保留batch维度(第0维)
    
  • 损失函数适配:确认使用CrossEntropyLoss时,目标张量是类别索引(形状(batch_size)),不需要做one-hot编码;若目标是one-hot格式,需改用BCELoss并配合sigmoid激活,同时调整模型输出维度。
  • 输入维度校验:确保输入图像的维度符合模型预期,比如MNIST数据应为(batch_size, 1, 28, 28),卷积层的in_channels需对应输入的通道数。

调试技巧

在模型forward方法的关键步骤(如卷积后、全连接前)添加print(x.shape),逐层检查输出维度,快速定位维度异常的环节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 14:55:55