macanv / BERT-BiLSTM-CRF-NER

Tensorflow solution of NER task Using BiLSTM-CRF model with Google BERT Fine-tuning And private Server services
https://github.com/macanv/BERT-BiLSMT-CRF-NER
4.67k stars 1.25k forks source link

验证时eval_loss为何重新定义,以及和total_loss的区别 #360

Open haozaiiii opened 3 years ago

haozaiiii commented 3 years ago

为什么验证的时候重新定义了eval_loss,原来tatal_loss此时又代表什么呢? 代码位置如下: elif mode == tf.estimator.ModeKeys.EVAL:

针对NER ,进行了修改

        def metric_fn(label_ids, pred_ids):
            return {
                "eval_loss": tf.metrics.mean_squared_error(labels=label_ids, predictions=pred_ids),
            }

        eval_metrics = metric_fn(label_ids, pred_ids)
        output_spec = tf.estimator.EstimatorSpec(
            mode=mode,
            loss=total_loss,
            eval_metric_ops=eval_metrics
        )
lotest commented 3 years ago

同样的问题,也想请问一下这里的eval loss为什么用的是MSE。 虽然可以衡量eval阶段的loss情况,但是和train阶段的crf_log_likelihood应该不是同一个尺度的??