model.train() for i, pack in enumerate(train_tbar): batch_size = pack[0].size(0) optimizer.zero_grad() images, gts = pack images = Variable(images) gts = Variable(gts) images = images.cuda() gts = gts.cuda() atts = model(images) loss1 = criterion(atts, gts) loss = loss1 loss.backward() optimizer.step() now_train_loss += loss * batch_size now_iter_size += batch_size
123456789101112131415161718192021 如何修改? ,将原先的代码修改为如下,即可解决。now_train_loss += loss.item() * batch_size 1 为什么这么修改? ,
loss.item() 是 PyTorch 中 Tensor 对象的方法,它将张量中的单个值转换为一个 Python 标量。这个方法常用于从包含标量的张量中提取数值,以便进行进一步处理或记录。根据网上评论得知:如不修改,Loss张量会一直累积在内存中,导致内存逐渐增大。(不知真假) 12
相关知识
如何解决pytorch训练过程中内存一直增大直到爆炸。
深度学习训练过程中的问题&解决
Pytorch使用cuda后,任务管理器GPU的利用率还是为0?
YOLOv5集群式训练故障排除指南:常见问题与解决方案,快速解决训练难题
大模型训练中常见问题及解决方案
如何估算LLM推理和训练所需的GPU内存?
几个神经网训练过程中的常见问题及解决方法
Pytorch 使用Pytorch Lightning DDP时记录日志的正确方法
机器学习训练过程中常见问题
YOLO训练内存优化:释放资源,提升训练速度,告别卡顿
网址: 如何解决pytorch训练过程中内存一直增大直到爆炸。 https://m.mcbbbk.com/newsview384356.html
上一篇: 如何估算LLM推理和训练所需的G |
下一篇: 艺琳零基础ipad宠物绘画网盘云 |