MindSpore ResNet50 模型训练:解决 Conv2d padding 参数错误
MindSpore ResNet50 模型训练:解决 Conv2d padding 参数错误/n/n在使用 MindSpore 训练 ResNet50 模型时,可能会遇到以下错误信息:/n/npython/nTraceback (most recent call last):/n File /'D://pythonProject6//trainmodel.py/', line 91, in <module>/n net = resnet50()/n File /'D://pythonProject6//trainmodel.py/', line 85, in resnet50/n return ResNet(ResBlock, [3, 4, 6, 3])/n File /'D://pythonProject6//trainmodel.py/', line 50, in __init__/n self.conv1 = ConvBlock(3, 64, kernel_size=7, stride=2, padding=3)/n File /'D://pythonProject6//trainmodel.py/', line 18, in __init__/n self.conv = nn.Conv2d(in_channels, out_channels, kernel_size, stride, padding, has_bias=False)/n File /'D://miniconda3//envs//MindSpore//lib//site-packages//mindspore/_extends//utils.py/', line 46, in deco/n fn(self, *args, **kwargs)/n File /'D://miniconda3//envs//MindSpore//lib//site-packages//mindspore//nn//layer//conv.py/', line 304, in __init__/n data_format=self.data_format)/n File /'D://miniconda3//envs//MindSpore//lib//site-packages//mindspore//ops//primitive.py/', line 654, in deco/n fn(self, *args, **kwargs)/n File /'D://miniconda3//envs//MindSpore//lib//site-packages//mindspore//ops//operations//nn_ops.py/', line 1252, in __init__/n validator.check_value_type('pad_mode', pad_mode, [str], self.name)/n File /'D://miniconda3//envs//MindSpore//lib//site-packages//mindspore/_checkparam.py/', line 654, in check_value_type/n raise_error_msg()/n File /'D://miniconda3//envs//MindSpore//lib//site-packages//mindspore/_checkparam.py/', line 643, in raise_error_msg/n raise TypeError(f'{msg_prefix} type of /'{arg_name}/' should be {'one of ' if num_types > 1 else ''}' /nTypeError: For 'Conv2D', the type of 'pad_mode' should be 'str', but got '3' with type 'int'./n/nProcess finished with exit code 1/n/n/n这个错误是因为在 ResNet 的构造函数中,ConvBlock 中的 padding 参数应该是字符串类型的 pad_mode 参数,但你在实例化时传入的是整型的 padding 参数。/n/n解决方案:/n/n将代码中 ConvBlock 的实例化代码修改如下即可:/n/npython/nself.conv = nn.Conv2d(in_channels, out_channels, kernel_size, stride, padding, pad_mode='same', has_bias=False)/n/n/n修改后,pad_mode 参数将被设置为 'same',从而解决 TypeError 错误。/n/n希望这篇文章能够帮助你解决在 MindSpore 中使用 ResNet50 模型时遇到的 Conv2d padding 参数错误问题。
原文地址: https://www.cveoy.top/t/topic/mJg9 著作权归作者所有。请勿转载和采集!