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
據說使用原始碼安裝也可以解決報錯問題,具體沒有試過。