问题:
    RuntimeError: CUDA out of memory. Tried to allocate 220.00 MiB (GPU 0; 2.00 GiB total capacity; 1.07 GiB already allocated; 0 bytes free; 1.08 GiB reserved in total by PyTorch)

    解决方法:
    方法一:减小 batchsize
    在训练过程,遇到 CUDA 内存不足的问题,可以通过减小 batchsize 来降低模型对内存的需求。
    image.png

    方法二:不计算梯度
    一般验证集评估阶段,batchsize 比较大,所需要的内存也就要多很多。此时除了减小 batchsize 外,还可以通过不计算梯度来解决。
    在出现错误的地方加上 with torch.no_grad():

    1. with torch.no_grad():
    2. train_and_test(model, task)


    方法三:释放内存【未实测】
    在报错那一行前面加上下面两行,释放无关的内存:

    1. if hasattr(torch.cuda, 'empty_cache'):
    2. torch.cuda.empty_cache()