PyTorch实例化BasicModel缺少args参数报错,应传入什么参数?
实例化BasicModel所需参数说明
报错原因:BasicModel的构造方法要求传入1个名为args的位置参数,你当前实例化时没有传入该参数才触发报错。
args要求为字典类型,需要包含以下字段:
- 必选字段
backbone:字符串类型,取值必须与backbones目录下的骨干网络类名完全匹配,可选值为resnet或mobilenetv3,根据你的任务需求选择。 - 必选字段
decoder:字符串类型,取值必须与decoders目录下的解码器类名完全匹配,可选值包括seg_detector、simple_detection等,根据你的任务需求选择。 - 可选字段
backbone_args:字典类型,用于传入指定骨干网络初始化时需要的自定义参数,无特殊需求可以不填该字段,构造函数会默认传入空字典。 - 可选字段
decoder_args:字典类型,用于传入指定解码器初始化时需要的自定义参数,无特殊需求可以不填该字段,构造函数会默认传入空字典。
代码修改示例(cvs.py)
import torch from torch import nn from model import BasicModel # 构造符合要求的args参数 args = { "backbone": "resnet", "decoder": "seg_detector", "backbone_args": { "pretrained": True, "depth": 50 }, "decoder_args": { "num_classes": 2 } } # 实例化时传入args参数 bm = BasicModel(args)
注意事项
- 填写
backbone和decoder的字符串时,必须和对应Python文件中定义的类名完全一致,大小写也要匹配,否则会触发找不到类的错误。 - 如果你使用的骨干网络或解码器不需要额外初始化参数,可以直接省略
backbone_args和decoder_args字段。
内容的提问来源于stack exchange,提问作者Jenny
相关产品推荐
相关产品推荐

