Exemple #1
0
def main():
    parser = argparse.ArgumentParser(description="PyTorch FCN Training")
    parser.add_argument(
        "--config_file", default="", help="path to config file", type=str
    )
    parser.add_argument("opts", help="Modify config options using the command-line", default=None,
                        nargs=argparse.REMAINDER)

    args = parser.parse_args()

    num_gpus = int(os.environ["WORLD_SIZE"]) if "WORLD_SIZE" in os.environ else 1

    if args.config_file != "":
        cfg.merge_from_file(args.config_file)
    cfg.merge_from_list(args.opts)
    cfg.freeze()

    output_dir = cfg.OUTPUT_DIR
    if output_dir and not os.path.exists(output_dir):
        mkdir(output_dir)

    logger = setup_logger("FCN_Model", output_dir, 0)
    logger.info("Using {} GPUS".format(num_gpus))
    logger.info(args)

    if args.config_file != "":
        logger.info("Loaded configuration file {}".format(args.config_file))
        with open(args.config_file, 'r') as cf:
            config_str = "\n" + cf.read()
            logger.info(config_str)
    logger.info("Running with config:\n{}".format(cfg))

    train(cfg)
Exemple #2
0
def main():
    parser = argparse.ArgumentParser(description="BtrflyNet training with PyTorch")
    parser.add_argument(
        "--config_file",
        default="config/btrfly.yaml",
        metavar="FILE",
        help="path to config file",
        type=str
    )
    parser.add_argument("--log_step", default=1, type=int, help="print logs every log_step")
    parser.add_argument("--save_step", default=5, type=int, help="save checkpoint every save_step")
    parser.add_argument("--eval_step", default=5, type=int, help="evaluate dataset every eval_step, disabled if eval_step <= 0")
    parser.add_argument("--use_tensorboard", default=1, type=int, help="use visdom to illustrate training process, unless use_visdom == 0")
    parser.add_argument("--train_from_no_checkpoint", default=1, type=int, help="train_from_no_checkpoint")
    args = parser.parse_args()
    
#     if torch.cuda.is_available():
#         torch.backends.cudnn.benchmark = True
        
    cfg.merge_from_file(args.config_file)
    cfg.freeze()
    
    # make output directory designated by OUTPUT_DIR if necessary
    if cfg.OUTPUT_PATH:
        pathlib.Path(cfg.OUTPUT_PATH).mkdir(exist_ok=True)
        
    # logger_message help print message
    # it will also print info to stdout and to OUTPUT_DIR/log.txt (way: append)
    logger_message = setup_colorful_logger(
        "main_message",
        save_dir=os.path.join(cfg.OUTPUT_PATH, 'log.txt'),
        format="only_message")

    # print config info (cfg and args)
    # args are obtained by command line
    # cfg is obtained by yaml file and defaults.py in configs/
    separator(logger_message)
    logger_message.warning(" ---------------------------------------")
    logger_message.warning("|              Your config:             |")
    logger_message.warning(" ---------------------------------------")
    logger_message.info(args)
    logger_message.warning(" ---------------------------------------")
    logger_message.warning("|      Running with entire config:      |")
    logger_message.warning(" ---------------------------------------")
    logger_message.info(cfg)
    separator(logger_message)
    
    train(cfg, args)
                        help="Directory to dataset")
    parser.add_argument('--experiment_dir',
                        default='experiments/base_model',
                        help="Directory to experiment")
    parser.add_argument(
        '--checkpoint_dir',
        help="Reload weights from .pth.tar file ('best' or 'last')")
    args = parser.parse_args()

    # Set the logger, import Tensorboard (fixes conflict with the logger)
    set_logger(os.path.join(args.experiment_dir, 'train.log'))
    from torch.utils.tensorboard import SummaryWriter

    # Import configs
    config_dir = args.experiment_dir + '/config.yaml'
    cfg.merge_from_file(config_dir)
    cfg.freeze()

    # Check GPU
    cuda = torch.cuda.is_available()

    # Fix seed
    torch.manual_seed(0)
    if cuda: torch.cuda.manual_seed(0)

    # Fetch dataloaders
    logging.info("Loading datasets...\n")

    dl = dataloaders.fetch_dataloaders(args.data_dir)
    train_dl, valid_dl, test_dl = dl['train'], dl['valid'], dl['test']
Exemple #4
0
    else:
        print("[INFO] opening video file...")
        # vs = cv2.VideoCapture(RTSP_URL)
        vs = cv2.VideoCapture(cfg.DATA.INPUT)

    print(cfg.DATA.INPUT)
    return vs


# 越线值
total_down = 0  # 出现人数
total_up = 0  # 过线人数

# 加载配置信息,如果FRAME.CATE=0代表通道,1表示闸机
if cfg.FRAME.CATE == 0:
    cfg.merge_from_file('./config/asile.yaml')
else:
    cfg.merge_from_file('./config/gate.yaml')
cfg.freeze()


def main_func(args, vs, yolo):
    scheduler = BackgroundScheduler()  # 初始化任务函数
    # 添加调度任务
    # 调度方法为 timedTask,触发器选择 interval(间隔性),间隔时长为 1 秒
    scheduler.add_job(timedTask, 'interval',
                      seconds=cfg.KAFKA.PUSHINTER)  # 间隔为1秒
    # 启动调度任务
    scheduler.start()
    writer = None  # 写入对象,如果要写入视频,将实例化该对象
    W = None