在val时关于loss一个莫名其妙的问题
收藏
快速回复
AI Studio平台使用 问答Notebook项目 354 2
在val时关于loss一个莫名其妙的问题
收藏
快速回复
AI Studio平台使用 问答Notebook项目 354 2

我在训练一个模型进行验证(val)的时候,如果不进行梯度计算,GPU会直接拉满,内存爆掉,请问有朋友遇到过这种问题吗?

# 训练
def vv_step(inp, targ):
    loss = 0

    enc_output, enc_hidden = encoder(inp)

    dec_hidden = enc_hidden

    dec_input = paddle.unsqueeze(paddle.to_tensor([comment_word2id_dict.get('')] * BATCH_SIZE), 1)

    # 教师强制 - 将目标词作为下一个输入
    for t in range(1, targ.shape[1]):
        # 将编码器输出 (enc_output) 传送至解码器
        predictions, dec_hidden= decoder(dec_input, dec_hidden, enc_output)

        loss += getloss(predictions,targ[:, t])

        # 使用教师强制
        dec_input =paddle.unsqueeze(targ[:, t], 1)

    batch_loss = (loss / int(targ.shape[1]))

    # 问题出现在这里,如果下面这行注释掉,GPU就炸了!!!!
    #batch_loss.backward()



    return batch_loss

 

0
收藏
回复
全部评论(2)
时间顺序
三岁
#2 回复于2021-12

你这个问题,环境情况什么的都不明确,建议查看一下自己的网络情况,如果有问题可以提一个issue

0
回复
DeepGeGe
#3 回复于2021-12

感觉不进行反向传播就会爆GPU内存没有道理。。。此外,你不是说进行验证吗?进行验证为什么要弄一个反向传播?

0
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户