INNER CODE UNIT · Python
valid_len_list
yxuansu/SimCTG · dialogue_generation/loss_func.py:69
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
loss_matrix = torch.sum(masked_loss_matrix, dim = -1)
assert loss_matrix.size() == input_ids.size()
loss_matrix = loss_matrix * input_mask
cl_loss = torch.sum(loss_matrix) / torch.sum(loss_mask)
return cl_loss