问题描述
在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())