在keras/examples/mnist_siamese_graph.py中使用的Keras示例看起来不正确。下面的函数并不是真正的准确率(准确率 =(正确预测的类别 / 总测试类别))
def compute_accuracy(predictions, labels): '''使用固定阈值计算距离的分类准确率。 ''' return labels[predictions.ravel() < 0.5].mean()
此外,我们还有这个问题,这让我认为contrastive_loss和get_pairs函数也有错误。有人能解释一下这个准确率指标和这些函数吗?
回答:
compute_accuracy函数是错误的。它目前计算的是精确度。它应该是这样的:
def compute_precision(predictions, labels): '''使用固定阈值计算距离的分类精确度。 ''' return labels[predictions.ravel() < 0.5].mean()def compute_accuracy(predictions, labels): '''使用固定阈值计算距离的分类准确率。 ''' return np.mean(np.equal(predictions.ravel() < 0.5, labels))
关于这个问题,我还不确定,但修复准确率函数似乎运作良好。