项目场景:

最近在用UNETR做医学图像分割,在用官方的tutorial跑自己的数据集时出现了报错不能训练


问题描述

例如:在前面的transform设置,dataset和dataloader都能正常运行,在训练的时候下面这句代码

global_step, dice_val_best, global_step_best = train(global_step, train_loader, dice_val_best, global_step_best)

报错如下:

RuntimeError: Caught RuntimeError in DataLoader worker process 0.
Original Traceback (most recent call last):File "/opt/conda/lib/python3.8/site-packages/monai/transforms/transform.py", line 89, in apply_transformreturn _apply_transform(transform, data, unpack_items)File "/opt/conda/lib/python3.8/site-packages/monai/transforms/transform.py", line 53, in _apply_transformreturn transform(parameters)File "/opt/conda/lib/python3.8/site-packages/monai/transforms/croppad/dictionary.py", line 1171, in __call__self.randomize(label, fg_indices, bg_indices, image)File "/opt/conda/lib/python3.8/site-packages/monai/transforms/croppad/dictionary.py", line 1153, in randomizeself.centers = generate_pos_neg_label_crop_centers(File "/opt/conda/lib/python3.8/site-packages/monai/transforms/utils.py", line 512, in generate_pos_neg_label_crop_centerscenters.append(correct_crop_centers(center, spatial_size, label_spatial_shape, allow_smaller))File "/opt/conda/lib/python3.8/site-packages/monai/transforms/utils.py", line 439, in correct_crop_centersraise ValueError("The size of the proposed random crop ROI is larger than the image size.")
ValueError: The size of the proposed random crop ROI is larger than the image size.The above exception was the direct cause of the following exception:Traceback (most recent call last):File "/opt/conda/lib/python3.8/site-packages/torch/utils/data/_utils/worker.py", line 198, in _worker_loopdata = fetcher.fetch(index)File "/opt/conda/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetchdata = [self.dataset[idx] for idx in possibly_batched_index]File "/opt/conda/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 44, in <listcomp>data = [self.dataset[idx] for idx in possibly_batched_index]File "/opt/conda/lib/python3.8/site-packages/monai/data/dataset.py", line 97, in __getitem__return self._transform(index)File "/opt/conda/lib/python3.8/site-packages/monai/data/dataset.py", line 807, in _transformdata = apply_transform(_transform, data)File "/opt/conda/lib/python3.8/site-packages/monai/transforms/transform.py", line 113, in apply_transformraise RuntimeError(f"applying transform {transform}") from e
RuntimeError: applying transform <monai.transforms.croppad.dictionary.RandCropByPosNegLabeld object at 0x7f3c221e9340>
  • 不知道怎么解决把num_works改为了0依然报错。
  • 查了这句报错:ValueError: The size of the proposed random crop ROI is larger than the image size参考.说是该错误是由于ROI裁剪过大而无法覆盖整个输入图像体积造成的。它与网络架构无关,但与数据加载器相关。于是找到transform设置中把spatial_size=(96, 96, 96)改成spatial_size=(48, 48, 48)
train_transforms = Compose([LoadImaged(keys=["image", "label"]),AddChanneld(keys=["image", "label"]),Orientationd(keys=["image", "label"], axcodes="RAS"),Spacingd(keys=["image", "label"],pixdim=(1.5, 1.5, 2.0),mode=("bilinear", "nearest"),),ScaleIntensityRanged(keys=["image"],a_min=-175,a_max=250,b_min=0.0,b_max=1.0,clip=True,),CropForegroundd(keys=["image", "label"], source_key="image"),RandCropByPosNegLabeld(keys=["image", "label"],label_key="label",
#             spatial_size=(96, 96, 96),spatial_size=(48, 48, 48),pos=1,neg=1,num_samples=4,image_key="image",image_threshold=0,),RandFlipd(keys=["image", "label"],spatial_axis=[0],prob=0.10,),RandFlipd(keys=["image", "label"],spatial_axis=[1],prob=0.10,),RandFlipd(keys=["image", "label"],spatial_axis=[2],prob=0.10,),RandRotate90d(keys=["image", "label"],prob=0.10,max_k=3,),RandShiftIntensityd(keys=["image"],offsets=0.10,prob=0.50,),ToTensord(keys=["image", "label"]),]
)

但是训练模型时又报了新的错误,报错信息如下:

RuntimeError: The size of tensor a (27) must match the size of tensor b (216) at non-singleton dimension 1

原因分析:

ROI裁剪尺寸大于图片本身了,


解决方案:

在调用UNETR模型时,参数img_size=(96, 96, 96)改为img_size=(32, 32, 32)

RuntimeError: applying transform <monai.transforms.croppad.dictionary.RandCropByPosNegLabeld object相关推荐

  1. python transform方法_Python transforms.BboxTransformFrom方法代码示例

    # 需要导入模块: from matplotlib import transforms [as 别名] # 或者: from matplotlib.transforms import BboxTran ...

  2. 取消打印Tensorflow中的无用信息,如tensorflow:AutoGraph could not transform <*> and will run it as-is、加载CUDA信息等

    取消打印Tensorflow中的无用信息,如WARNING:tensorflow:AutoGraph could not transform bound method BatchNorm.call o ...

  3. 【无标题】Python学习中的小问题1<built-in method lower of str object at 0x0000026B858CF8F0

    这里写自定义目录标题 生成一个适合你的列表 创建一个表格 设定内容居中.居左.居右 SmartyPants 创建一个自定义列表 如何创建一个注脚 注释也是必不可少的 KaTeX数学公式 新的甘特图功能 ...

  4. 成功解决<pandas.core.groupby.generic.DataFrameGroupBy object at 0x0000024489925F60>

    成功解决<pandas.core.groupby.generic.DataFrameGroupBy object at 0x0000024489925F60> 目录 解决问题 解决方法 解 ...

  5. monai.tansforms.xxx 常用函数作用

    1.monai.transforms.LoadPNG(image_only=False, dtype=<class 'numpy.float32'>) 作用:加载常用的2维图像,格式包括 ...

  6. Transforms CTM, 转换矩阵

    Quartz转换实现的原理:Quartz把绘图分成两个部分, 用户空间,即和设备无关, 设备空间, 用户空间和设备空间中间存在一个转换矩阵 : CTM 本章实质是讲解CTM Quartz提供的3大功能 ...

  7. torchvision.transforms 的CenterCrop():在图片的中间区域进行裁剪

    pytorch中transform函数 torchvision.transforms是pytorch中的图像预处理包 一般用Compose把多个步骤整合到一起: 比如说 transforms.Comp ...

  8. Pytorch专题实战——数据转换(Dataset Transforms)

    文章目录 1.导入必要模块 2.定义数据处理类 3.定义numpy转化为tensor类 4.定义乘法转化类 5.打印结果 5.1.未转化前 5.2.tensor转化 5.3.乘法转化 1.导入必要模块 ...

  9. ABP +VUE Elment 通用高级查询(右键菜单)设计+LINQ通用类Expression<Func<TFields, bool>>方法

    ABP +VUE Elment 通用高级查询(右键菜单)设计+LINQ通用类Expression 1. 目前需要用VUE实现源cs系统报表的右键菜单所有和自定义查询功能. 1.1 CS端的右键菜单效果 ...

最新文章

  1. dataframe 拆分 分裂
  2. 详述FileUpload 控件上传单文件
  3. 系统性能优化 1-1 Redis删除key和字符串拼接
  4. exchange 2010 中OAB 排错一例
  5. 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。
  6. 第九课 go的循环语句
  7. 绿色版Tomcat的配置
  8. 有N个软件包未被升级
  9. Git遇到的问题:This is not a valid source path/URL
  10. 读博士或者拿到博士学位以后经历和感受是怎样的?
  11. 用计算机计算根号2^2-1÷,2根号2(万能计算器在线使用)
  12. JAVA中两台电脑通信_如何实现两台PC终端基于MAC地址互相通信
  13. win10安装steam有损计算机,win10系统steam磁盘写入错误怎么办 steam磁盘写入错误的解决教程...
  14. 告别Excel!别人家高大上的财务数据分析,这才是老板的最爱
  15. iOS比较好用的第三方框架
  16. 国考计算机辅助的题,国考还有两天,聊聊行测解题技巧!
  17. JMeter 组件8: Post-Processors后置处理器
  18. 【pycharm】pycharm配置caffe路径pycaffe环境变量。ImportError: dynamic module does not define module export
  19. EmpireCMS-此栏目暂无任何新增信息
  20. RTThread(一) - 概念及简介

热门文章

  1. VC在X64模式下不支持__declspec(naked)
  2. android qq三方登录授权失败,QQ第三方登录无法授权错误码110401的解决方法
  3. MySQL数据库服务的简单开启和关闭
  4. 怎样从《几何原本》到《独立宣言》?
  5. java恒大集团面试经验,恒大集团面试经验
  6. 【Math ML】Lagrange Multipliers 拉格朗日乘数
  7. Qt编写地图综合应用22-动态轨迹
  8. 浙江大学计算机学院2019推免,浙江大学控制科学与工程学院2019年推免夏令营信息通知...
  9. 佳能Canon PIXMA MG2510 打印机驱动
  10. S7-1200的指令