在pytorch中,我想将输出保存在每个纪元中,以便后期计算但是经过几个时期后,它会导致内存不足,

问题描述

在pytorch中,我想将输出保存在每个纪元中,以便后期计算。但是经过几个时间段后,它会导致内存不足错误代码如下:

    L=[]
    optimizer.zero_grad()
    for i,(input,target) in enumerate(train_loader):
        output = model(input)
        L.append(output)
    *** updata my model to minimize a loss function. List L will be used here. 

我知道原因是因为pytorch保存了每个时期的所有计算图。 但是损失函数只能在获得所有预测结果之后计算

有没有办法训练我的模型?

解决方法

您正在使用GPU进行培训吗?

如果是这样,您可以将其移动到主存储器中

    L.append(output.detach().cpu())