更改地方
在nnunetv2——training——nnUNetTrainer 下第260行 build_network_architecture函数
def build_network_architecture(plans_manager: PlansManager,
dataset_json,
configuration_manager: ConfigurationManager,
num_input_channels,
enable_deep_supervision: bool = True) -> nn.Module:
return get_network_from_plans(plans_manager, dataset_json, configuration_manager,
num_input_channels, deep_supervision=enable_deep_supervision)
参数:PlansManager 可以在nnUNetPlans.json中确定
"3d_fullres": {
"data_identifier": "nnUNetPlans_3d_fullres",
"preprocessor_name": "DefaultPreprocessor",
"UNet_class_name": "PlainConvUNet", ##在这里确定网络类型
##关键更改地方
由于nnUNetV2将网络结构封装在包里,所以我们下载网络封装所在的包 dynamic_network_architectures 放在nnUnet的根目录下
在这个函数get_network_from_plans定义中会找到import的包,下载下来就会优先引用本地的 dynamic_network_architectures而不是环境中的包
from dynamic_network_architectures.architectures.unet import PlainConvUNet, ResidualEncoderUNet
在PlainConvUNet中是最原始的Unet