RuntimeError: applying transform <monai.transforms.croppad.dictionary.RandCropByPosNegLabeld object
项目场景:
最近在用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相关推荐
- python transform方法_Python transforms.BboxTransformFrom方法代码示例
# 需要导入模块: from matplotlib import transforms [as 别名] # 或者: from matplotlib.transforms import BboxTran ...
- 取消打印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 ...
- 【无标题】Python学习中的小问题1<built-in method lower of str object at 0x0000026B858CF8F0
这里写自定义目录标题 生成一个适合你的列表 创建一个表格 设定内容居中.居左.居右 SmartyPants 创建一个自定义列表 如何创建一个注脚 注释也是必不可少的 KaTeX数学公式 新的甘特图功能 ...
- 成功解决<pandas.core.groupby.generic.DataFrameGroupBy object at 0x0000024489925F60>
成功解决<pandas.core.groupby.generic.DataFrameGroupBy object at 0x0000024489925F60> 目录 解决问题 解决方法 解 ...
- monai.tansforms.xxx 常用函数作用
1.monai.transforms.LoadPNG(image_only=False, dtype=<class 'numpy.float32'>) 作用:加载常用的2维图像,格式包括 ...
- Transforms CTM, 转换矩阵
Quartz转换实现的原理:Quartz把绘图分成两个部分, 用户空间,即和设备无关, 设备空间, 用户空间和设备空间中间存在一个转换矩阵 : CTM 本章实质是讲解CTM Quartz提供的3大功能 ...
- torchvision.transforms 的CenterCrop():在图片的中间区域进行裁剪
pytorch中transform函数 torchvision.transforms是pytorch中的图像预处理包 一般用Compose把多个步骤整合到一起: 比如说 transforms.Comp ...
- Pytorch专题实战——数据转换(Dataset Transforms)
文章目录 1.导入必要模块 2.定义数据处理类 3.定义numpy转化为tensor类 4.定义乘法转化类 5.打印结果 5.1.未转化前 5.2.tensor转化 5.3.乘法转化 1.导入必要模块 ...
- ABP +VUE Elment 通用高级查询(右键菜单)设计+LINQ通用类Expression<Func<TFields, bool>>方法
ABP +VUE Elment 通用高级查询(右键菜单)设计+LINQ通用类Expression 1. 目前需要用VUE实现源cs系统报表的右键菜单所有和自定义查询功能. 1.1 CS端的右键菜单效果 ...
最新文章
- dataframe 拆分 分裂
- 详述FileUpload 控件上传单文件
- 系统性能优化 1-1 Redis删除key和字符串拼接
- exchange 2010 中OAB 排错一例
- 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。
- 第九课 go的循环语句
- 绿色版Tomcat的配置
- 有N个软件包未被升级
- Git遇到的问题:This is not a valid source path/URL
- 读博士或者拿到博士学位以后经历和感受是怎样的?
- 用计算机计算根号2^2-1÷,2根号2(万能计算器在线使用)
- JAVA中两台电脑通信_如何实现两台PC终端基于MAC地址互相通信
- win10安装steam有损计算机,win10系统steam磁盘写入错误怎么办 steam磁盘写入错误的解决教程...
- 告别Excel!别人家高大上的财务数据分析,这才是老板的最爱
- iOS比较好用的第三方框架
- 国考计算机辅助的题,国考还有两天,聊聊行测解题技巧!
- JMeter 组件8: Post-Processors后置处理器
- 【pycharm】pycharm配置caffe路径pycaffe环境变量。ImportError: dynamic module does not define module export
- EmpireCMS-此栏目暂无任何新增信息
- RTThread(一) - 概念及简介
热门文章
- VC在X64模式下不支持__declspec(naked)
- android qq三方登录授权失败,QQ第三方登录无法授权错误码110401的解决方法
- MySQL数据库服务的简单开启和关闭
- 怎样从《几何原本》到《独立宣言》?
- java恒大集团面试经验,恒大集团面试经验
- 【Math ML】Lagrange Multipliers 拉格朗日乘数
- Qt编写地图综合应用22-动态轨迹
- 浙江大学计算机学院2019推免,浙江大学控制科学与工程学院2019年推免夏令营信息通知...
- 佳能Canon PIXMA MG2510 打印机驱动
- S7-1200的指令