PaddleSeg2.8训练验证时报错[Hint: Expected axis >= -rank && axis < rank == true, but received axis >= -rank && axis < rank:0 != true:1.]

1. 报错问题

  ValueError: (InvalidArgument) The axis is expected to be in range of [0, 0), but got 0
  [Hint: Expected axis >= -rank && axis < rank == true, but received axis >= -rank && axis < rank:0 != true:1.]

2.解决办法

  上述报错问题是在使用PaddleSeg-release2.8版本使用deeplabv3p模型训练图片做分割时遇到的。训练过程中一切正常,等到evaluate验证时就报错了。解决办法如下:

  看一下你报错的代码是哪行?我的是paddleseg\utils\metrics.py中的

  pred_area.append(paddle.sum(paddle.cast(pred_i, "int64")))
  label_area.append(paddle.sum(paddle.cast(label_i, "int64")))
  intersect_area.append(paddle.sum(paddle.cast(intersect_i, "int64")))

  这些行报错了,根据报错内容,可以使用unsqueeze将结果提升一个维度,修改如下:

  pred_area.append(paddle.sum(paddle.cast(pred_i, "int64")).unsqueeze(0))
  label_area.append(paddle.sum(paddle.cast(label_i, "int64")).unsqueeze(0))
  intersect_area.append(paddle.sum(paddle.cast(intersect_i, "int64")).unsqueeze(0))

  再次运行命令训练:

python tools/train.py --config E:\pythonWorksapce\PaddleSeg-release-2.8\configs\deeplabv3p_resnet101_os8_cityscapes_769x769_80k_wx.yml --do_eval --use_vdl --save_interval 500 --save_dir output0425

  直到训练完都是正常不报错。

  训练可视化使用visualdl --logdir output0425

  据说使用源码安装也可以解决报错问题,具体没有试过。

posted @ 2024-04-26 20:58  wancy  阅读(27)  评论(0编辑  收藏  举报