Source code for elliot.utils.read

"""
Module description:

"""

__version__ = '0.3.1'
__author__ = 'Vito Walter Anelli, Claudio Pomo'
__email__ = 'vitowalter.anelli@poliba.it, claudio.pomo@poliba.it'

import pandas as pd
import configparser
import pickle
import numpy as np
import os
from types import SimpleNamespace


[docs]def read_csv(filename): """ Args: filename (str): csv file path Return: A pandas dataframe. """ df = pd.read_csv(filename, index_col=False) return df
[docs]def read_np(filename): """ Args: filename (str): filename of numpy to load Return: The loaded numpy. """ return np.load(filename)
[docs]def read_imagenet_classes_txt(filename): """ Args: filename (str): txt file path Return: A list with 1000 imagenet classes as strings. """ with open(filename) as f: idx2label = eval(f.read()) return idx2label
[docs]def read_config(sections_fields): """ Args: sections_fields (list): list of fields to retrieve from configuration file Return: A list of configuration values. """ config = configparser.ConfigParser() config.read('./config/configs.ini') configs = [] for s, f in sections_fields: configs.append(config[s][f]) return configs
[docs]def read_multi_config(): """ It reads a config file that contains the configuration parameters for the recommendation systems. Return: A list of configuration settings. """ config = configparser.ConfigParser() config.read('./config/multi.ini') configs = [] for section in config.sections(): single_config = SimpleNamespace() single_config.name = section for field, value in config.items(section): single_config.field = value configs.append(single_config) return configs
[docs]def load_obj(name): """ Load the pkl object by name :param name: name of file :return: """ with open(name, 'rb') as f: return pickle.load(f)
[docs]def find_checkpoint(dir, restore_epochs, epochs, rec, best=0): """ :param dir: directory of the model where we start from the reading. :param restore_epochs: epoch from which we start from. :param epochs: epochs from which we restore (0 means that we have best) :param rec: recommender model :param best: 0 No Best - 1 Search for the Best :return: """ if best: for r, d, f in os.walk(dir): for file in f: if 'best-weights-'.format(restore_epochs) in file: return dir + file.split('.')[0] return '' if rec == "apr" and restore_epochs < epochs: # We have to restore from an execution of bprmf dir_stored_models = os.walk('/'.join(dir.split('/')[:-2])) for dir_stored_model in dir_stored_models: if 'bprmf' in dir_stored_model[0]: dir = dir_stored_model[0] + '/' break for r, d, f in os.walk(dir): for file in f: if 'weights-{0}-'.format(restore_epochs) in file: return dir + file.split('.')[0] return ''