PaddleSeg2.8訓練驗證時報錯[Hint: Expected axis >= -rank && axis < rank == true, but received axis >= -rank && axis < rank:0 != true:1.]

wancy發表於2024-04-26

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

  據說使用原始碼安裝也可以解決報錯問題,具體沒有試過。

相關文章