def evaluate(sess, SRL_Model, name, data, idx2label, logger): logger.info("evaluate:{}".format(name)) srl_results = SRL_Model.evaluate_crf_model(sess, data, ELMo_context, ELMo_ids, idx2label) eval_lines = test_srl(srl_results) for line in eval_lines: logger.info(line.strip()) f1 = float(eval_lines[1].strip().split()[-1]) if name == "dev": best_test_f1 = SRL_Model.best_dev_f1.eval(session=sess) if f1 > best_test_f1: tf.assign(SRL_Model.best_dev_f1, f1).eval(session=sess) logger.info("new best dev f1 score:{:>.3f}".format(f1)) if f1 > best_test_f1: final_report = eval_lines else: final_report = None return f1 > best_test_f1, f1, final_report elif name == "test": best_test_f1 = SRL_Model.best_test_f1.eval(session=sess) if f1 > best_test_f1: tf.assign(SRL_Model.best_test_f1, f1).eval(session=sess) logger.info("new best test f1 score:{:>.3f}".format(f1)) return f1 > best_test_f1, f1, eval_lines
def evaluate(sess, model, name, data, id_to_tag, logger): logger.info("evaluate:{}".format(name)) srl_results = model.evaluate_model(sess, data, id_to_tag) eval_lines = test_srl(srl_results, FLAGS.result_path) for line in eval_lines: logger.info(line.strip()) f1 = float(eval_lines[1].strip().split()[-1]) if name == "dev": best_test_f1 = model.best_dev_f1.eval(session=sess) if f1 > best_test_f1: tf.assign(model.best_dev_f1, f1).eval(session=sess) logger.info("new best dev f1 score:{:>.3f}".format(f1)) return f1 > best_test_f1, f1 elif name == "test": best_test_f1 = model.best_test_f1.eval(session=sess) if f1 > best_test_f1: tf.assign(model.best_test_f1, f1).eval(session=sess) logger.info("new best test f1 score:{:>.3f}".format(f1)) return f1 > best_test_f1, f1