完整报错:

FileNotFoundError: [Errno 2] No such file or directory: '../model/vit_checkpoint/imagenet21k/R50+ViT-B_16.npz'

解决方法:

修改vit_seg_configs.py中的第51行,把路径前缀的..改为.即可解决。

def get_r50_b16_config():
    """Returns the Resnet50 + ViT-B/16 configuration."""
    config = get_b16_config()
    config.patches.grid = (16, 16)
    config.resnet = ml_collections.ConfigDict()
    config.resnet.num_layers = (3, 4, 9)
    config.resnet.width_factor = 1

    config.classifier = 'seg'
    #config.pretrained_path = '../model/vit_checkpoint/imagenet21k/R50+ViT-B_16.npz'
    #把两个点改成一个
    config.pretrained_path = './model/vit_checkpoint/imagenet21k/R50+ViT-B_16.npz'
    config.decoder_channels = (256, 128, 64, 16)
    config.skip_channels = [512, 256, 64, 16]
    config.n_classes = 2
    config.n_skip = 3
    config.activation = 'softmax'

    return config

解决上述问题后还出现了新的报错:

FileNotFoundError: [Errno 2] No such file or directory: '../data/Synapse/train_npz/case0023_slice036.npz'

解决方法:

将trainer.py第60行的..换成.即可解决

    dataset_config = {
        'Synapse': {
            #'root_path': '../data/Synapse/train_npz', 同样把../换成./
            'root_path': './data/Synapse/train_npz',
            'list_dir': './lists/lists_Synapse',
            'num_classes': 9,
        },
    }

原理

  • .. 表示 上一级目录

  • . 表示 当前目录

  • 相对路径是相对于当前工作目录来解析的,而不是相对于脚本文件的位置。

若当前目录是 /home/user/TransUNet ,要运行 /home/user/TransUNet/train.py

../data/mydata 会被解析为 /home/user/data/mydata

如果数据实际在 /home/user/TransUNet/data/mydata,就会找不到文件 → 报 FileNotFoundError

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐