MindSpore ResNet 模型训练错误: 'Conv2D' Padding 和 Pad Mode 不兼容
MindSpore ResNet 模型训练错误: 'Conv2D' Padding 和 Pad Mode 不兼容/n/n在使用 MindSpore 训练 ResNet 模型时,可能会遇到以下错误:/n/npython/nTraceback (most recent call last):/n File /'D://pythonProject7//main.py/', line 156, in <module>/n train_lenet()/n File /'D://pythonProject7//main.py/', line 126, in train_lenet/n network = ResNet(BasicBlock, [2, 2, 2, 2])/n File /'D://pythonProject7//main.py/', line 56, in __init__/n self.layer1 = self.make_layer(block, 64, layers[0])/n File /'D://pythonProject7//main.py/', line 73, in make_layer/n layers.append(block(self.in_channels, out_channels, stride, downsample))/n File /'D://pythonProject7//main.py/', line 21, in __init__/n self.conv1 = nn.Conv2d(in_channels, out_channels, kernel_size=3, stride=stride, padding=1, has_bias=False)/n File /'D://miniconda3//envs//MindSpore//lib//site-packages//mindspore/_extends//utils.py/', line 45, in deco/n fn(self, *args, **kwargs)/n File /'D://miniconda3//envs//MindSpore//lib//site-packages//mindspore//nn//layer//conv.py/', line 262, in __init__/n data_format=self.format)/n File /'D://miniconda3//envs//MindSpore//lib//site-packages//mindspore//ops//primitive.py/', line 615, in deco/n fn(self, *args, **kwargs)/n File /'D://miniconda3//envs//MindSpore//lib//site-packages//mindspore//ops//operations//nn_ops.py/', line 1421, in __init__/n raise ValueError(f/'For '{self.name}', the 'pad' must be zero when 'pad_mode' is not 'pad', /' /nValueError: For 'Conv2D', the 'pad' must be zero when 'pad_mode' is not 'pad', but got 'pad' and 'pad_mode' is same./n/n/n错误原因: 这是因为在定义 ResNet 网络的时候,Conv2d 的 padding 设置为 0,而使用的 pad_mode 为 same,这两个参数不兼容。/n/n解决方法: 将 padding 改为 'valid' 就可以解决这个错误。/n/n修改代码如下:/n/npython/nself.conv1 = nn.Conv2d(1, 64, kernel_size=7, stride=2, padding='valid', has_bias=False)/n/n/n解释:/n/n* padding 参数用于指定卷积操作前对输入数据的填充方式,'valid' 表示不进行填充。/n* pad_mode 参数用于指定填充方式,'same' 表示输出特征图的大小与输入特征图的大小相同。/n/n当 pad_mode 为 'same' 时,padding 必须为 0,而当 padding 为 0 时,pad_mode 必须为 'valid'。因此,修改 padding 为 'valid' 可以解决这个问题。/n/n注意: 修改 padding 为 'valid' 会导致输出特征图的大小有所不同,需要根据实际情况进行调整。
原文地址: https://www.cveoy.top/t/topic/mQk2 著作权归作者所有。请勿转载和采集!