2021SC@SDUSC
我们继续看train.py中的train()函数,上篇博客分析到了第二层循环,现在继续。
tgt = b.tgt[:,1:].contiguous().view(-1).to(args.device)
l = F.nll_loss(p.contiguous().view(-1,p.size(2)),tgt,ignore_index=1)
.contiguous()函数在第八篇博客中已经分析过,此处不再赘述。
if args.cl:
z = z.max(1)[0]
cl = nn.functional.mse_loss(z,torch.ones_like(z))
l = l + args.cl*cl
if args.plan:
pl = nn.functional.cross_entropy(planlogits.view(-1,planlogits.size(2)),b.sordertgt[0].view(-1),ignore_index=1)
l = l+ args.plweight*pl
parser.add_argument("-cl",default=None,type=float,help="Coverage loss")
parser.add_argument("-plan",action='store_true',help="plan and write (NOT IMPLEMENTED)")
判断参数是否覆盖损失,