知识图到文本的生成——拾

本文深入分析了使用PyTorch实现的知识图谱到文本生成的模型训练过程,重点探讨了evaluate函数中的数据处理、模型操作以及动态学习率调整策略。在训练循环中,对数据进行批处理,利用contiguous()和nll_loss()计算损失,并在循环结束后更新学习率。此外,介绍了如何根据训练进度动态调整学习率,确保模型优化效果。
摘要由CSDN通过智能技术生成

2021SC@SDUSC

我们继续看main(args)的那个循环。

  for e in range(starte,args.epochs):
    print("epoch ",e,"lr",o.param_groups[0]['lr'])
    train(m,o,ds,args)
    vloss = evaluate(m,ds,args)
    if args.lrwarm:
      update_lr(o,args,e)
    print("Saving model")
    torch.save(m.state_dict(),args.save+"/"+str(e)+".vloss-"+str(vloss)[:8]+".lr-"+str(o.param_groups[0]['lr']))
    if vloss > lastloss:
      if args.lrdecay:
        print("decay lr")
        o.param_groups[0]['lr'] *= 0.5
    lastloss = vloss

上次我们分析了train函数,接下来我们分析evaluate函数。这个函数主要对数据集进行评估操作。

def evaluate(m,ds,args):
  print("Evaluating",end="\t")
  m.eval()
  loss = 0
  ex = 0

m、ds、args参数和train的函数参数相同,此处不再重复。然后对m变字符串。


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值