报错详情:
grid_sampler(): expected grid to have size 3 in last dimension, but got grid with sizes [1, 12544, 1, 2]
实验环境:
Unbuntu服务器,A10显卡,MMsegmentation框架。之前训练过相同的模型很多次,没有这个报错。
报错贴图:
可以定位错误是在训练过程中,计算cls、mask和dice的loss值时,使用了point_sample函数,在函数中进行下采样时遇到了问题。
本地代码调试后,可以正常进行不报错,而本地代码中的相关参数分别是:
可以看出,这里grid的shape与报错中相同,说明出错的并不是grid的形状,而是其他问题。
- 卸载mmdet再重装
- 替换mask2former代码
- 替换cityspaces代码
- 删除自己添加的loss模块
- 换了一个之前可以跑的数据集
问题解决了,确实是数据集的问题,但不知道为什么是数据集导致的报错。目前正在用的数据集以前也用过,当时并没有问题。