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 的使用情况,如下所示:

GPU使用报错合集_持续更新

可以看到这个程序是把卡1所有的显存都用上了,所以导致显存不足,那么就可以考虑是否是数据量过大导致的?我看一下我的代码,果然如此:

GPU使用报错合集_GPU_02

我要把 1446 *2 条句子同时用model处理,所以导致显存爆炸,当我将其变成小批量时,就可以解决这个问题了。

2.1 原因

本质原因是:显存过小,但是就程序而言是因为 数据量过大。所以也就有了 将数据分批的想法。