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)))
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)))