亲爱的小祝 2023-03-25 12:34 采纳率: 0%
浏览 138
已结题

paddleseg训练报错:Shape of `pred` and `label should be equal

paddleseg训练segnet报错:ValueError: Shape of pred and `label should be equal, but there are [1, 420, 520] and [1, 421, 520].

实验说明

在百度飞浆的图像分割相关套件paddleseg中训练segnet时的报错。
设备硬件以及相关配置:
GPU:GeForce RTX 3050 Laptop GPU
CUDA:11.7
cuDNN:8.8.0
paddlepaddle-gpu==2.4.2
项目文件夹版本:paddleseg-2.7

调用的配置文件:segnet_cityscapes_1024x512_80k.yml

修改之后的内容见下:


_base_: '../_base_/cityscapes.yml'

batch_size: 4
iters: 160000

train_dataset:  #训练数据设置
  type: Dataset #指定加载数据集的类。数据集类的代码在`PaddleSeg/paddleseg/datasets`目录下。
  dataset_root: data/150images_dataset #数据集路径
  train_path: data/150images_dataset/train.txt  #数据集中用于训练的标识文件
  num_classes: 2  #指定类别个数(背景也算为一类)
  mode: train #表示用于训练
  transforms: #模型训练的数据预处理方式。
    - type: ResizeStepScaling #将原始图像和标注图像随机缩放为0.5~2.0倍
      min_scale_factor: 0.5
      max_scale_factor: 2.0
      scale_step_size: 0.25
    - type: RandomPaddingCrop #从原始图像和标注图像中随机裁剪512x512大小
      crop_size: [256, 128]
    - type: RandomHorizontalFlip  #对原始图像和标注图像随机进行水平反转
    - type: RandomDistort #对原始图像进行亮度、对比度、饱和度随机变动,标注图像不变
      brightness_range: 0.5
      contrast_range: 0.5
      saturation_range: 0.5
    - type: Normalize #对原始图像进行归一化,标注图像保持不变

val_dataset:  #验证数据设置
  type: Dataset #指定加载数据集的类。数据集类的代码在`PaddleSeg/paddleseg/datasets`目录下。
  dataset_root: data/150images_dataset #数据集路径
  val_path: data/150images_datasetal.txt  #数据集中用于验证的标识文件
  num_classes: 2  #指定类别个数(背景也算为一类)
  mode: val #表示用于验证
  transforms: #模型验证的数据预处理的方式
    - type: Normalize #对原始图像进行归一化,标注图像保持不变


loss: #设定损失函数的类型
  types:
    - type: BinaryCrossEntropyLoss


model:
  type: SegNet
  pretrained: Null
  num_classes: 2

报错内容和自己的一些探索

在训练fcn时,训练到第一批验证集的时候报错:ValueError: Shape of pred and `label should be equal, but there are [1, 420, 520] and [1, 421, 520].并停止运行

img

报错如上图,报错含义大概是“标签和数据组存在尺寸不匹配的问题”,可是检查了我的数据集划分之后的val.txt文档中的图片,在“images”和“labels”文件夹中找到对应图片进行检查之后并没有发现尺寸问题,如下图所示,原图和标签的尺寸是一样的。

img

img

img

我还查看了离报错最近的metrics.py文件,里面报错的地方大致就是说pred图片和label的尺寸不一样而报错,但是我思来想去并不知道为什么会这样,pred图片的高度莫名其妙的比原图少了一个像素点。然后在各大平台各种找也没有找到解决方案。
希望有有经验的人士能给一些建议

  • 写回答

4条回答 默认 最新

  • threenewbee 2023-03-25 13:36
    关注

    [1, 420, 520] and [1, 421, 520]
    怎么搞第二个多了一个,检查下为什么不对应

    评论

报告相同问题?

问题事件

  • 系统已结题 4月2日
  • 创建了问题 3月25日

悬赏问题

  • ¥100 求懂行的大ge给小di解答下!
  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统