def loss(self, predictions, labels, param, training=True):
hot_labels = tf.one_hot(labels, param.output_size)
softmaxed = tf.nn.softmax_cross_entropy_with_logits(labels= hot_labels, logits=predictions)
low_adj = np.logical_xor(labels==0,tf.argmax(tf.nn.softmax(predictions),1).numpy() == 0) * 0.4
high_adj = np.logical_xor(labels==1,tf.argmax(tf.nn.softmax(predictions),1).numpy() == 1) * 0.2
lossed = tf.reduce_mean(softmaxed + softmaxed*high_adj + softmaxed*low_adj)
return lossed
我正在研究一个二进制分类问题。以上是用于相同目的的损失函数。然而,这是其他人的代码,我不太明白为什么要使用低_adj和高_adj
这里正在进行什么样的调整?如果你解释为什么使用0.4和0.2? 我看不到更大的图景
提前谢谢
目前没有回答
相关问题 更多 >
编程相关推荐