资讯中心

「BUG记录」如何解决pytorch训练过程中内存一直增大直到爆炸。

📅 2026/7/28 21:54:06
「BUG记录」如何解决pytorch训练过程中内存一直增大直到爆炸。
注意本方法不适用于全部问题仅为本人实验过程中遇到问题进行解决的记录。问题出现于训练代码train.py中出现问题代码问题出现在倒数第二行。model.train()fori,packinenumerate(train_tbar):batch_sizepack[0].size(0)optimizer.zero_grad()images,gtspack imagesVariable(images)gtsVariable(gts)imagesimages.cuda()gtsgts.cuda()attsmodel(images)loss1criterion(atts,gts)lossloss1 loss.backward()optimizer.step()now_train_lossloss*batch_size now_iter_sizebatch_size如何修改将原先的代码修改为如下,即可解决。now_train_lossloss.item()*batch_size为什么这么修改loss.item()是 PyTorch 中 Tensor 对象的方法它将张量中的单个值转换为一个 Python 标量。这个方法常用于从包含标量的张量中提取数值以便进行进一步处理或记录。 根据网上评论得知如不修改Loss张量会一直累积在内存中导致内存逐渐增大。不知真假