Я занимаюсь классификационной задачей, используя оценки тензорного потока.
Я хочу вычислить оценку f1 для каждой партии данных, а также точность и отзыв.
Я вычисляю точность и вспоминаю, используякод ниже и зарегистрируйте их для оценки и обучения.
Я также вычисляю fscore, используя формулу, но во время регистрации fscore я получаю ошибку.
pre = tf.metrics.precision(labels=labels,predictions=pred,name="precision")
rec = tf.metrics.recall(labels=labels,predictions=pred,name="recall")
fscore_val = tf.reduce_mean((2*pre[0]*rec[0]) / (pre[0] + rec[0] + 1e-5))
fscore_update = tf.group(pre[1], rec[1])
fscore = (fscore_val, fscore_update)
# logging metric at evaluation time
metrics['precision'] = pre
metrics['recall'] = rec
metrics['fscore'] = fscore
# logging metric at training time
tf.summary.scalar('precision', pre[1])
tf.summary.scalar('recall', rec[1])
tf.summary.scalar('fscore', fscore)
Это ошибка, которую яполучить.
TypeError: Expected float32, got <tf.Operation 'metrics_Left_Lane_Type/group_deps' type=NoOp> of type 'Operation' instead.
Я понимаю, почему я получаю эту ошибку.Это потому, что fscore должно быть двумя значениями, похожими на точность и отзыв.
Может кто-нибудь помочь мне, как это сделать в оценках тензорного потока?