解决TransUNet代码报错FileNotFoundError: [Errno 2] No such file or directory: ‘../model/vit_checkpoint/imag
·
完整报错:
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
更多推荐

所有评论(0)