| 821 | |
| 822 | |
| 823 | def eval(sess_config, input_hooks, model, data_init_op, steps, checkpoint_dir): |
| 824 | model.is_training = False |
| 825 | hooks = [] |
| 826 | hooks.extend(input_hooks) |
| 827 | |
| 828 | scaffold = tf.train.Scaffold( |
| 829 | local_init_op=tf.group(tf.tables_initializer(), |
| 830 | tf.local_variables_initializer(), data_init_op)) |
| 831 | session_creator = tf.train.ChiefSessionCreator( |
| 832 | scaffold=scaffold, checkpoint_dir=checkpoint_dir, config=sess_config) |
| 833 | writer = tf.summary.FileWriter(os.path.join(checkpoint_dir, 'eval')) |
| 834 | merged = tf.summary.merge_all() |
| 835 | |
| 836 | with tf.train.MonitoredSession(session_creator=session_creator, |
| 837 | hooks=hooks) as sess: |
| 838 | for _in in range(1, steps + 1): |
| 839 | if (_in != steps): |
| 840 | sess.run([model.acc_op, model.auc_op]) |
| 841 | if (_in % 100 == 0): |
| 842 | print("Evaluation complete:[{}/{}]".format(_in, steps)) |
| 843 | else: |
| 844 | eval_acc, eval_auc, events = sess.run( |
| 845 | [model.acc_op, model.auc_op, merged]) |
| 846 | writer.add_summary(events, _in) |
| 847 | print("Evaluation complete:[{}/{}]".format(_in, steps)) |
| 848 | print("ACC = {}\nAUC = {}".format(eval_acc, eval_auc)) |
| 849 | |
| 850 | |
| 851 | def main(tf_config=None, server=None): |