SwimUNet复现过程中碰到的bug记录

1.Traceback (most recent call last):
  File "C:/Users/momomo/Desktop/Swin-Unet-main/train.py", line 101, in <module>
    trainer[dataset_name](args, net, args.output_dir)
  File "C:\Users\momomo\Desktop\Swin-Unet-main\trainer.py", line 53, in trainer_synapse
    for i_batch, sampled_batch in enumerate(trainloader):
  File "G:\anaconda\envs\pytorch3.7\lib\site-packages\torch\utils\data\dataloader.py", line 435, in __iter__
    return self._get_iterator()
  File "G:\anaconda\envs\pytorch3.7\lib\site-packages\torch\utils\data\dataloader.py", line 381, in _get_iterator
    return _MultiProcessingDataLoaderIter(self)
  File "G:\anaconda\envs\pytorch3.7\lib\site-packages\torch\utils\data\dataloader.py", line 1034, in __init__
    w.start()
  File "G:\anaconda\envs\pytorch3.7\lib\multiprocessing\process.py", line 112, in start
    self._popen = self._Popen(self)
  File "G:\anaconda\envs\pytorch3.7\lib\multiprocessing\context.py", line 223, in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
  File "G:\anaconda\envs\pytorch3.7\lib\multiprocessing\context.py", line 322, in _Popen
    return Popen(process_obj)
  File "G:\anaconda\envs\pytorch3.7\lib\multiprocessing\popen_spawn_win32.py", line 65, in __init__
    reduction.dump(process_obj, to_child)
  File "G:\anaconda\envs\pytorch3.7\lib\multiprocessing\reduction.py", line 60, in dump
    ForkingPickler(file, protocol).dump(obj)
AttributeError: Can't pickle local object 'trainer_synapse.<locals>.worker_init_fn'

错误原因:Can't pickle local object 'trainer_synapse.<locals>.worker_init_fn'

解决办法:把trainer.py里面trainloader当中的num_workers改成0

改后:

2.

报错信息:FileNotFoundError: [Errno 2] No such file or directory: './data/Synapse/train_npz\\train_npz\\case0005_slice002.npz'

解决办法:把train.py文件当中的

parser.add_argument('--root_path', type=str,
                    default='./data/Synapse/train_npz', help='root dir for data')

改成

parser.add_argument('--root_path', type=str,
                    default='./data/Synapse', help='root dir for data')
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
Swin-UNet是一种新型图像分割模型,它融合了Swin Transformer和UNet的特性,具有较好的图像分割能力。下面我将简单介绍如何使得Swin-UNet运行。 首先,准备好所需的开发环境,包括Python环境和必要的库。确保安装好PyTorch、Torchvision和其他所需的依赖项。 接下来,下载Swin-Transformer和Swin-UNet的代码。这些代码可以从GitHub上的相关仓库获取,可以使用Git命令将代码克隆到本地。确保克隆了最新的代码版本。 然后,准备好训练数据集。您可以选择一个适合您的应用场景的图像分割数据集,确保该数据集已经按照要求进行标注。将训练和验证数据集划分好,并按照指定的格式准备好。 接着,根据Swin-UNet的文档或示例代码,配置模型的参数和超参数。这些参数包括输入图像大小、批大小、学习率、网络层的尺寸等。根据您的需求和硬件资源,进行相应的调整。 之后,使用准备好的数据集进行训练。使用训练数据集和配置好的参数,运行训练代码,开始训练Swin-UNet模型。根据需要,您可以设定训练的迭代次数或停止条件。 训练完成后,您可以使用训练好的Swin-UNet模型进行图像分割任务的推理。提供一张测试图像,通过加载训练好的模型并对测试图像进行预测,获取图像分割的结果。 最后,根据需要对模型进行评估和调优。使用预留的验证数据集,计算模型在图像分割任务的精度、召回率、准确率等指标。根据评估结果,进行模型的参数调整或其他优化操作。 总结来说,要使Swin-UNet跑通,您需要准备好开发环境、获取代码和数据集、配置参数、进行训练和推理,并对模型进行评估和调优。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值