def store_file(self, file_name, name, cat, data={}, rel_dir_path=None): """ Appends new data to the specified file or rewrites it and updates repo meta file """ if not rel_dir_path: cat_path = cat_to_dir(cat) else: cat_path = rel_dir_path dir_path = os.path.join(self.objects_dir_path, cat_path) data_file_path = os.path.join(dir_path, file_name) # Create directory if not exists if not os.path.isdir(dir_path): os.makedirs(dir_path, exist_ok=True) # Update meta file if rel_dir_path is not None: file_name_for_meta = '{}/{}'.format(rel_dir_path, file_name) else: file_name_for_meta = file_name self.update_meta_file(file_name_for_meta, { 'name': name, 'type': self.get_artifact_cat(cat), 'data': data, 'data_path': cat_path, }) return { 'path': os.path.join(cat_path, file_name), 'abs_path': data_file_path, }
def store_model_file(self, checkpoint_name, cat): """ Saves a model file into repo """ root_path = os.path.join(self.objects_dir_path, cat_to_dir(cat)) dir_name = checkpoint_name dir_path = os.path.join(root_path, dir_name) model_file_name = 'model' model_file_path = os.path.join(dir_path, model_file_name) # Create directory os.makedirs(dir_path, exist_ok=True) return model_file_path
def store_model(self, checkpoint_name, name, epoch, meta_info, model_info, cat): """ Saves a model into repo """ root_path = os.path.join(self.objects_dir_path, cat_to_dir(cat)) dir_name = checkpoint_name dir_path = os.path.join(root_path, dir_name) model_file_name = 'model' model_file_path = os.path.join(dir_path, model_file_name) meta_file_path = os.path.join(dir_path, 'model.json') # Create directory os.makedirs(dir_path, exist_ok=True) # Create meta file with open(meta_file_path, 'w+') as meta_file: meta_file.write(json.dumps({ 'name': name, 'epoch': epoch, 'model': model_info, })) zip_name = '{}.aim'.format(dir_name) zip_path = os.path.join(root_path, zip_name) # Update repo meta file self.update_meta_file(checkpoint_name, { 'name': checkpoint_name, 'type': self.get_artifact_cat(cat), 'data': { 'name': name, 'epoch': epoch, 'meta': meta_info, 'model': model_info, }, 'data_path': dir_name, }) return { 'model_path': model_file_path, 'dir_path': dir_path, 'zip_path': zip_path, }