我正在尝试使用验证输出来计算一些基准。我知道对于基线交叉熵,我相信您应该将每个实际值与所有值的平均值进行比较。为了准确起见,我相信您应该将实际值与最常见的类别进行比较。
我看到精度看起来不错,但是我不确定我是否正确计算了基线二进制交叉熵。如上所述,我基本上是使用所有输出的平均值作为基准。例如:
actual_outputs = [1, 1, 1, 0]
baseline_outputs = [0.75, 0.75, 0.75, 0.75]
binary_crossentropy(actual_outputs, baseline_outputs)
下面,我基本上是为实际输出计算张量,填充输出平均值的张量和填充最普通类的张量...
tensor_outputs_avg = tf.constant(np.full((len(val_outputs)), np.average(val_outputs)), dtype=tf.float64)
tensor_outputs_avg_rounded = tf.constant(np.full((len(val_outputs)), round(np.average(val_outputs))), dtype=tf.float64)
tensor_outputs = tf.constant(val_outputs, dtype=tf.float64)
print('baseline loss:', tf.Session().run(binary_crossentropy(tensor_outputs_avg, tensor_outputs)))
print('baseline acc:', tf.Session().run(binary_accuracy(tensor_outputs_avg_rounded, tensor_outputs)))
我在做什么错了?