摘要:
a=3
+1
print(a)
#输出3,不报错
a=3\
+1
print(a)
#输出4
对于多目标损失,计算时,一定要把多目标的tensor类型loss进行求和,才能形成模型闭合,后续才能根据loss.backward()更新权重。
而在多目标loss相加时容易犯一个错误,由于计算两个loss语句较长,会涉及换行,常常直接换行,并且把+放在行首,导致后一个loss根本没有加进去,但是系统也不会报错,如下:
loss = F.nll_loss(F.log_softmax(logits[train_mask], 1), labels[train_mask], reduction='none')
+args.wa*F.nll_loss(F.log_softmax(logits_GAT[train_mask], 1), labels[train_mask], reduction='none')
正确的操作是在第一行尾部加上‘\’,python中反斜杠‘\’表示续行符,这样两部分就加在一起,才能在后续反向传播更新权重
loss = F.nll_loss(F.log_softmax(logits[train_mask], 1), labels[train_mask], reduction='none')\
+args.wa*F.nll_loss(F.log_softmax(logits_GAT[train_mask], 1), labels[train_mask], reduction='none')