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

PyTorch GAN尺寸不匹配报错,求问数值13456的来源

问题分析:13456的来源及解决方案

13456的产生原因

这个数字是判别器输出张量展平后的总元素数量,计算方式为:batch_size × 判别器最后一层特征图的高度 × 特征图的宽度。

你的batch_size是16,13456 ÷ 16 = 841 = 29²,说明判别器最后输出的特征图尺寸是29×29,没有被压缩到1×1的维度。计算BCELoss时,这个(16,1,29,29)的张量会被自动展平成(13456,1),而你的标签是(16)的一维张量,两者尺寸不匹配,因此触发报错。

出现29×29特征图的核心原因是:原教程的判别器是针对64×64图片设计的,你换成512×512图片后未调整卷积结构——原教程通过几次stride=2的卷积下采样,能把64×64图片压缩到1×1,但512×512尺寸需要更多下采样步骤,现有卷积层数不足,导致特征图未能完全压缩。

解决方法

你可以任选一种方式修复:

  • 统一图片尺寸:在数据加载时把512×512图片resize到64×64,和原教程输入尺寸一致,判别器无需修改即可正常输出1×1特征图。
  • 修改判别器结构:增加若干层stride=2的卷积层,确保经过多次下采样后特征图最终压缩到1×1。比如针对512×512输入,需要至少7次stride=2的下采样才能将尺寸从512降至1。
  • 自适应池化:在判别器最后一层卷积后添加nn.AdaptiveAvgPool2d(1),不管输入图片尺寸如何,都会输出1×1的特征图,保证输出张量形状为(16,1,1,1),展平后与标签尺寸匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 05:10:31