最近在跑一个联邦学习项目,用到的数据集是cifa-10,跑代码时出现以下报错:
RuntimeError: Given input size: (256x4x4). Calculated output size: (256x0x0). Output size is too small
问题说的是,前向传播时,神经网络中的某一池化层的输入是(256x4x4),而输出却是(256x0x0)。显然不可能有大小为0的图片尺寸。我们从最后一行报错的代码那里开始调试(不是pytorch包的代码,仔细找能找到)
原因:经过调试,发现是池化层设计出错
这里池化层kernel size大小为 8 × 8,而输入的图片大小是 4 × 4,显然对应不上,池化层过大无法计算。(如果找不到哪里改,可以全局查找“pool”关键字,找到关于网络结构设计的代码)