LawsonAbs的认知与思考,望各位读者审慎阅读。
总结
- 文章来源:CSDN_LawsonAbs
- 持续更新~
1 报错:RuntimeError: Invalid device, must be cuda device
1.1 原因:
在不支持cuda(GPU)
的机器上,妄想把模型或者数据放到GPU中,这时就会报错。
2 报错
RuntimeError: CUDA out of memory. Tried to allocate 170.00 MiB (GPU 0; 11.93 GiB total capacity;
11.09 GiB already allocated; 35.06 MiB free; 11.31 GiB reserved in total by PyTorch)
这个时候看一下 GPU 的使用情况,如下所示:
可以看到这个程序是把卡1所有的显存都用上了,所以导致显存不足,那么就可以考虑是否是数据量过大导致的?我看一下我的代码,果然如此:
我要把 1446 *2 条句子同时用model处理,所以导致显存爆炸,当我将其变成小批量时,就可以解决这个问题了。
2.1 原因
本质原因是:显存过小,但是就程序而言是因为 数据量过大。所以也就有了 将数据分批的想法。