Beispiel #1
0
    if seed is not None:
        train_config["seed"] = seed
        train_config["gqcnn"]["seed"] = seed
    if tensorboard_port is not None:
        train_config["tensorboard_port"] = tensorboard_port
    gqcnn_params = train_config["gqcnn"]

    # Create a unique output folder based on the date and time.
    if save_datetime:
        # Create output dir.
        unique_name = time.strftime("%Y%m%d-%H%M%S")
        output_dir = os.path.join(output_dir, unique_name)
        utils.mkdir_safe(output_dir)

    # Set visible devices.
    if "gpu_list" in train_config:
        gqcnn_utils.set_cuda_visible_devices(train_config["gpu_list"])

    # Fine-tune the network.
    start_time = time.time()
    gqcnn = get_gqcnn_model(backend)(gqcnn_params)
    trainer = get_gqcnn_trainer(backend)(gqcnn,
                                         dataset_dir,
                                         split_name,
                                         output_dir,
                                         train_config,
                                         name=name)
    trainer.finetune(model_dir)
    logger.info("Total Fine-tuning Time: " +
                str(utils.get_elapsed_time(time.time() - start_time)))
Beispiel #2
0
    if not os.path.isabs(dataset_dir):
        dataset_dir = os.path.join(os.getcwd(), dataset_dir)
    if not os.path.isabs(output_dir):
        output_dir = os.path.join(os.getcwd(), output_dir)
    if not os.path.isabs(config_filename):
        config_filename = os.path.join(os.getcwd(), config_filename)

    # create output dir if necessary
    utils.mkdir_safe(output_dir)
        
    # open train config
    train_config = YamlConfig(config_filename)
    train_config["tensorboard_port"] = tensorboard_port
    network_params = train_config["siamese_net"]

    if name is None:
        # create a unique model name with a timestamp
        timestamp = time.strftime("%Y-%m-%d_%H-%M-%S")
        name = "model_{}".format(timestamp)

    # train the network
    start_time = time.time()
    network = SiameseNet(network_params)
    trainer = SiameseTrainer(network,
                             dataset_dir,
                             output_dir,
                             train_config,
                             model_name=name)
    trainer.train()
    logger.info("Total Training Time:" + str(utils.get_elapsed_time(time.time() - start_time)))