INNER CODE UNIT · Python
loss_matrix
yxuansu/SimCTG · dialogue_generation/loss_func.py:57
loss_matrix = margin - difference_matrix # bsz x seqlen x seqlen
loss_matrix = torch.nn.functional.relu(loss_matrix)
### input mask
input_mask = torch.ones_like(input_ids).type(torch.FloatTensor)
if loss_matrix.is_cuda:
input_mask = input_mask.cuda(loss_matrix.get_device())
input_mask = input_mask.masked_fill(input_ids.eq(pad_token_id), 0.0)
if loss_matrix.is_cuda:
input_mask = input_mask.cuda(loss_matrix.get_device())
valid_len_list = torch.sum(input_mask, dim = -1).tolist()
loss_mask = build_mask_matrix(seqlen, [int(item) for item in valid_len_list], prefix_len)
if score_matrix.is_cuda:
loss_mask = loss_mask.cuda(score_matrix.get_device())
masked_loss_matrix = loss_matrix * loss_mask