def get_record_keeper(csv_folder,
                      tensorboard_folder=None,
                      global_db_path=None,
                      experiment_name=None,
                      is_new_experiment=True,
                      save_figures=False,
                      save_lists=False):
    try:
        import record_keeper as record_keeper_package
        from torch.utils.tensorboard import SummaryWriter
        record_writer = record_keeper_package.RecordWriter(
            folder=csv_folder,
            global_db_path=global_db_path,
            experiment_name=experiment_name,
            is_new_experiment=is_new_experiment,
            save_lists=save_lists)
        tensorboard_writer = SummaryWriter(
            log_dir=tensorboard_folder
        ) if tensorboard_folder is not None else None
        record_keeper = record_keeper_package.RecordKeeper(
            tensorboard_writer=tensorboard_writer,
            record_writer=record_writer,
            attributes_to_search_for=c_f.
            list_of_recordable_attributes_list_names(),
            save_figures=save_figures)
        return record_keeper, record_writer, tensorboard_writer

    except ModuleNotFoundError as e:
        logging.warn(e)
        logging.warn("There won't be any logging or model saving.")
        logging.warn("To fix this, pip install record-keeper tensorboard")
        return None, None, None
Exemple #2
0
def get_record_keeper():
    # record_keeper is a useful package for logging data during training and testing
    # You can use the trainers and testers without record_keeper.
    # But if you'd like to install it, then do pip install record_keeper
    # See more info about it here https://github.com/KevinMusgrave/record_keeper
    try:
        import os
        import errno
        import record_keeper as record_keeper_package
        from torch.utils.tensorboard import SummaryWriter

        def makedir_if_not_there(dir_name):
            try:
                os.makedirs(dir_name)
            except OSError as e:
                if e.errno != errno.EEXIST:
                    raise

        pkl_folder = "example_logs"
        tensorboard_folder = "example_tensorboard"
        makedir_if_not_there(pkl_folder)
        makedir_if_not_there(tensorboard_folder)
        pickler_and_csver = record_keeper_package.PicklerAndCSVer(pkl_folder)
        tensorboard_writer = SummaryWriter(log_dir=tensorboard_folder)
        return record_keeper_package.RecordKeeper(
            tensorboard_writer, pickler_and_csver,
            ["record_these", "learnable_param_names"])

    except ModuleNotFoundError:
        return None
Exemple #3
0
def get_record_keeper(csv_folder, tensorboard_folder, global_db_path=None, experiment_name=None, is_new_experiment=True):
    try:
        import record_keeper as record_keeper_package
        from torch.utils.tensorboard import SummaryWriter
        record_writer = record_keeper_package.RecordWriter(csv_folder, global_db_path, experiment_name, is_new_experiment)
        tensorboard_writer = SummaryWriter(log_dir=tensorboard_folder)
        record_keeper = record_keeper_package.RecordKeeper(tensorboard_writer, record_writer, ["record_these", "learnable_param_names"])
        return record_keeper, record_writer, tensorboard_writer

    except ModuleNotFoundError as e:
        logging.warn(e)
        return None, None, None
Exemple #4
0
def get_record_keeper(pkl_folder, tensorboard_folder):
    try:
        import record_keeper as record_keeper_package
        from torch.utils.tensorboard import SummaryWriter
        pickler_and_csver = record_keeper_package.PicklerAndCSVer(pkl_folder)
        tensorboard_writer = SummaryWriter(log_dir=tensorboard_folder)
        record_keeper = record_keeper_package.RecordKeeper(
            tensorboard_writer, pickler_and_csver,
            ["record_these", "learnable_param_names"])
        return record_keeper, pickler_and_csver, tensorboard_writer

    except ModuleNotFoundError as e:
        logging.warn(e)
        return None, None, None
def get_record_keeper(csv_folder,
                      tensorboard_folder,
                      global_db_path=None,
                      experiment_name=None,
                      is_new_experiment=True,
                      save_figures=False):
    try:
        import record_keeper as record_keeper_package
        from torch.utils.tensorboard import SummaryWriter
        record_writer = record_keeper_package.RecordWriter(
            csv_folder, global_db_path, experiment_name, is_new_experiment)
        tensorboard_writer = SummaryWriter(log_dir=tensorboard_folder)
        record_keeper = record_keeper_package.RecordKeeper(
            tensorboard_writer,
            record_writer, ["record_these", "learnable_param_names"],
            save_figures=save_figures)
        return record_keeper, record_writer, tensorboard_writer

    except ModuleNotFoundError as e:
        logging.warn(e)
        logging.warn("There won't be any logging or model saving.")
        logging.warn("To fix this, pip install record-keeper tensorboard")
        return None, None, None
Exemple #6
0
    def makedir_if_not_there(dir_name):
        try:
            os.makedirs(dir_name)
        except OSError as e:
            if e.errno != errno.EEXIST:
                raise

    pkl_folder = "example_logs"
    tensorboard_folder = "example_tensorboard"
    makedir_if_not_there(pkl_folder)
    makedir_if_not_there(tensorboard_folder)
    pickler_and_csver = record_keeper_package.PicklerAndCSVer(pkl_folder)
    tensorboard_writer = SummaryWriter(log_dir=tensorboard_folder)
    record_keeper = record_keeper_package.RecordKeeper(
        tensorboard_writer, pickler_and_csver,
        ["record_these", "learnable_param_names"])

except ModuleNotFoundError:
    record_keeper = None

##############################
########## Training ##########
##############################

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

# Set trunk model and replace the softmax layer with an identity function
trunk = models.resnet18(pretrained=True)
trunk_output_size = trunk.fc.in_features
trunk.fc = Identity()