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