而产生这种报错的原因是,在python3.8及以下的版本当中,不支持在类型注解时指定容器类型的内含类型,但是这一功能在3.9以上的版本是被支持的,具体可以看文档页面:What’s New In Python 3.9 — Python 3.9.17 documentation
有两种解决的办法:
- 升级python解释器版本
- 将内容对象的类型注解删除:
scales: tuple[int, ...] = (5,), 改成: scales: tuple = (5,),
# python3.9以上的版本是被支持 # REGISTERED_NORM_DICT: dict[str, type] = { # "bn2d": nn.BatchNorm2d, # "ln": nn.LayerNorm, # "ln2d": LayerNorm2d, # } # # # register activation function here # REGISTERED_ACT_DICT: dict[str, type] = { # "relu": nn.ReLU, # "relu6": nn.ReLU6, # "hswish": nn.Hardswish, # "silu": nn.SiLU, # } 更改成: # python3.8及以下的版本当中不支持在类型注解时指定容器类型的内含类型 # 将内容对象的类型注解删除 REGISTERED_NORM_DICT: dict = { "bn2d": nn.BatchNorm2d, "ln": nn.LayerNorm, "ln2d": LayerNorm2d, } # register activation function here REGISTERED_ACT_DICT: dict = { "relu": nn.ReLU, "relu6": nn.ReLU6, "hswish": nn.Hardswish, "silu": nn.SiLU,