admin管理员组文章数量:1632428
Pytorch训练过程中C盘缓存不断增加的问题
之前在训练的过程中,C盘内存会随着训练的轮次越来越少,特别影响训练效果,今天参考大佬的博客终于把问题解决了,记录一下
划重点:训练完后清空内存
def train():
*
*
*
del inputs, target, outputs, loss
torch.cuda.empty_cache()
如果说中间变量太多了修改代码比较麻烦,可以只在训练结束后清除cache中的缓存,即
def train():
*
*
*
torch.cuda.empty_cache()
案例:
def train(epoch):
running_loss = 0.0
for batch_idx, data in enumerate(train_loader, 0):
inputs, target = data
inputs=inputs.to(device)
target=target.to(device)
optimizer.zero_grad()#将module中的所有模型参数的梯度设置为0.
# forward + backward + update
outputs = model(inputs)
loss = criterion(outputs, target)
loss.backward()
optimizer.step()
running_loss += loss.item()
if batch_idx % 300 == 299:
print('[%d, %5d] loss: %.3f' % (epoch + 1, batch_idx + 1, running_loss / 2000))
running_loss = 0.0
del inputs, target, outputs, loss
torch.cuda.empty_cache()
版权声明:本文标题:Pytorch训练过程中C盘缓存不断增加的问题 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1729112961a1187014.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论