def _build_network(self):
        cfg_from_file(CONFIG_FILE)
        # set bs, gpu_num and workers_num to be 1
        cfg.TRAIN.CONFIG.BATCH_SIZE = 1  # only support bs=1 when testing
        cfg.TRAIN.CONFIG.GPU_NUM = 1
        cfg.DATA_LOADER.NUM_THREADS = 1
        cfg.TEST.WITH_GT = False

        self.evaluator = Evaluator(config=cfg, model_path=MODEL_PATH)
    def __init__(self, message, answer):
        super(InfThread, self).__init__()
        self._running = True
        self.message = message
        self.answer = answer
        cfg_from_file(CONFIG_FILE)
        # set bs, gpu_num and workers_num to be 1
        cfg.TRAIN.CONFIG.BATCH_SIZE = 1  # only support bs=1 when testing
        cfg.TRAIN.CONFIG.GPU_NUM = 1
        cfg.DATA_LOADER.NUM_THREADS = 1
        cfg.TEST.WITH_GT = False

        self.evaluator = Evaluator(config=cfg, model_path=MODEL_PATH)
            if step % self.summary_interval == 0:
                cur_time = time.time()
                time_elapsed = cur_time - last_time
                last_time = cur_time

                _, train_op_loss, summary_out, *losses_list_np = self.sess.run(
                    [self.train_op, self.total_loss_gpu, self.merged] +
                    self.losses_list,
                    feed_dict=feed_dict)

                self._log_string('**** STEP %08d ****' % step)
                self._log_string(
                    'Step {}, Total Loss {:0.3f}, Time Elapsed {:0.3f} s'.
                    format(step, train_op_loss, time_elapsed))
                for loss, loss_name in zip(losses_list_np, self.losses_list):
                    self._log_string('Loss: {}: {:0.3f}'.format(
                        loss_name.name, loss))
                self.train_writer.add_summary(summary_out, step)
            else:
                self.sess.run(self.train_op, feed_dict=feed_dict)


if __name__ == '__main__':
    args = parse_args()
    cfg_from_file(args.cfg)

    cur_trainer = Trainer(args)
    cur_trainer.train()
    print("**** Finish training steps ****")