示例#1
0
def gen_eval_generated_texts_ops(input_app, input_results, predictor,
                                 eval_scores):
    #need distinct_texts.npy distinct_text_strs.npy
    evaluator.init()

    evaluate_image_name, evaluate_text, evaluate_text_str, \
    evaluate_input_text, evaluate_input_text_str = input_results[input_app.fixed_input_valid_name]
    num_evaluate_examples = input_app.num_evaluate_examples

    pos_scores = eval_scores[:num_evaluate_examples, 0]

    build_predict_text_graph = functools.partial(
        predictor.build_predict_text_graph,
        input_text=evaluate_input_text,
        beam_size=FLAGS.beam_size,
        convert_unk=False)

    generated_texts, generated_texts_score = build_predict_text_graph(
        decode_method=FLAGS.seq_decode_method)

    #beam search(ingraph)
    generated_texts_beam, generated_texts_score_beam = build_predict_text_graph(
        decode_method=SeqDecodeMethod.beam)

    eval_ops = [evaluate_image_name, evaluate_input_text_str, evaluate_input_text, \
                evaluate_text_str, evaluate_text, \
                generated_texts, generated_texts_beam, \
                generated_texts_score, generated_texts_score_beam, \
                pos_scores]

    print('eval_ops:')
    for eval_op in eval_ops:
        print(eval_op)

    return eval_ops
示例#2
0
def evaluate_score():
  evaluator.init()
  text_max_words = evaluator.all_distinct_texts.shape[1]
  print('text_max_words:', text_max_words)
  predictor = algos_factory.gen_predictor(FLAGS.algo)
  predictor.init_predict(text_max_words)
  predictor.load(FLAGS.model_dir)

  evaluator.evaluate_scores(predictor)
示例#3
0
文件: eval_show.py 项目: fword/hasky
def gen_eval_generated_texts_ops(input_app,
                                 input_results,
                                 predictor,
                                 eval_scores,
                                 eval_neg_text=None,
                                 eval_neg_text_str=None):
    #need distinct_texts.npy distinct_text_strs.npy
    evaluator.init()

    evaluate_image_name, evaluate_image_feature, evaluate_text, evaluate_text_str = input_results[
        input_app.fixed_input_valid_name]
    num_evaluate_examples = input_app.num_evaluate_examples

    pos_scores = eval_scores[:num_evaluate_examples, 0]

    if eval_neg_text is not None:
        neg_scores = eval_scores[:num_evaluate_examples, 1]
        #eval neg text strs
        evaluate_neg_text_str = eval_neg_text_str[:num_evaluate_examples, 0]
        #eval neg text ids
        evaluate_neg_text = eval_neg_text[:num_evaluate_examples, 0, :]

    generated_texts, generated_texts_score = predictor.build_predict_text_graph(
        evaluate_image_feature,
        decode_method=FLAGS.seq_decode_method,
        beam_size=FLAGS.beam_size,
        convert_unk=False)

    generated_texts_beam, generated_texts_score_beam = predictor.build_predict_text_graph(
        evaluate_image_feature,
        decode_method=SeqDecodeMethod.beam,  #beam search(ingraph)
        beam_size=FLAGS.beam_size,
        convert_unk=False)

    eval_ops = [evaluate_image_name, evaluate_text_str, evaluate_text, \
                generated_texts, generated_texts_beam,
                generated_texts_score, generated_texts_score_beam, \
                pos_scores]

    if eval_neg_text is not None:
        eval_ops += [neg_scores, evaluate_neg_text_str, evaluate_neg_text]

    print('eval_ops:')
    for eval_op in eval_ops:
        print(eval_op)

    return eval_ops
示例#4
0
文件: eval_show.py 项目: fword/hasky
def gen_eval_show_ops(input_app, input_results, predictor, eval_scores,
                      eval_neg_text, eval_neg_text_str):
    eval_ops = []
    #need distinct_texts.npy distinct_text_strs.npy
    evaluator.init()

    evaluate_image_name, evaluate_image_feature, evaluate_text, evaluate_text_str = input_results[
        input_app.fixed_input_valid_name]
    num_evaluate_examples = input_app.num_evaluate_examples

    all_distinct_texts = evaluator.all_distinct_texts
    #print(all_distinct_texts[0], evaluator.all_distinct_text_strs[0], text2ids.ids2text(all_distinct_texts[0]))
    predictor.init_evaluate_constant_text(all_distinct_texts)
    pos_scores = eval_scores[:num_evaluate_examples, 0]
    neg_scores = eval_scores[:num_evaluate_examples, 1]
    #eval neg text strs
    evaluate_neg_text_str = eval_neg_text_str[:num_evaluate_examples, 0]
    #eval neg text ids
    evaluate_neg_text = eval_neg_text[:num_evaluate_examples, 0, :]
    eval_score = predictor.build_evaluate_fixed_text_graph(
        evaluate_image_feature)
    eval_max_score, eval_max_index = tf.nn.top_k(eval_score,
                                                 FLAGS.num_text_topn)
    eval_word_score = predictor.build_evaluate_image_word_graph(
        evaluate_image_feature)
    eval_word_max_score, eval_word_max_index = tf.nn.top_k(
        eval_word_score, FLAGS.num_word_topn)
    eval_ops += [
        eval_max_score, eval_max_index, eval_word_max_score,
        eval_word_max_index
    ]
    eval_ops += [evaluate_image_name, evaluate_text_str, evaluate_text]
    #notice evaluate_neg_text_str will run here so every thing related must be placeholder to avoid running twice (if FLAGS.feed_dict=1 and FLAGS.show_eval=1)
    #@TODO at some steps we might want to use eval_score
    eval_ops += [
        pos_scores, neg_scores, evaluate_neg_text_str, evaluate_neg_text
    ]

    print('eval_ops:')
    for eval_op in eval_ops:
        print(eval_op)

    return eval_ops
示例#5
0
def main(_):
    #-----------init global resource
    logging.set_logging_path(gezi.get_dir(FLAGS.model_dir))

    InputApp.init()
    vocabulary.init()
    text2ids.init()
    evaluator.init()

    logging.info('algo:{}'.format(FLAGS.algo))
    logging.info('monitor_level:{}'.format(FLAGS.monitor_level))

    global_scope = ''
    if FLAGS.add_global_scope:
        global_scope = FLAGS.global_scope if FLAGS.global_scope else FLAGS.algo

    global sess
    sess = melt.get_session(log_device_placement=FLAGS.log_device_placement)
    with tf.variable_scope(global_scope):
        train()