赞
踩
由于深度学习在GPU上运行,所以报错信息的位置可能不太准确,所以利用CUDA_LAUNCH_BLOCKING=1 来准确定位。即在命令行之前加上,即:
上面报错的意思就是数组下标超了,所以就应该看看到底是等式左边超过了,还是右边超过了。
由于没有在pycharm上配置好,所以只能在服务器上debug(md,马上把pycharm配好,这样可以直接在pycharmdebug了)
由于不知道是这一行的哪里出错了,所以我们得继续拆分:把各个小部分打印出来
这样看本应该看出问题,就是第二个的上千,早就超过了第一个的最大下标377,但是当时哈了,没看出来。所以得精确查看哪里出错了,直接code下面的组件:
发现报错了,然后再联想上面的输出,没错,罪魁祸首就是它,终于找到了。
然后仔细对比才发现第一个数组的长度应该是数据集的长度,而我弄成了data_loader的长度,所以才会超标。
因为data_loader的长度等于数据集/batchsize。不一样
debug得一步一步精确,不断想办法缩小范围。
最后大功告成!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。