Open Powerdiao opened 7 months ago
你好,想问关于以下几个问题
在计算crossEntropy时,只有正例对loss有贡献,负例相关的loss都为0吗?
q_reps = self.encode(query) p_reps = self.encode(passage) if self.training: if self.negatives_cross_device: q_reps = self._dist_gather_tensor(q_reps) p_reps = self._dist_gather_tensor(p_reps) scores = self.compute_similarity(q_reps, p_reps) scores = scores / self.temperature scores = scores.view(q_reps.size(0), -1) target = torch.arange(scores.size(0), device=scores.device, dtype=torch.long) target = target * (p_reps.size(0) // q_reps.size(0)) loss = self.compute_loss(scores, target)
对的 是的 crossEntropy目标是增大正例的概率。正例的概率是通过softmax计算得到的,负例的分数会在softmax中作为分母。因此优化正例的概率会增大正样本分数,减小负样本分数。 明白了,十分感谢!!
你好,想问关于以下几个问题
在计算crossEntropy时,只有正例对loss有贡献,负例相关的loss都为0吗?