def __init__(self, config): self.config = config # model configuration self._metron_s = MetronAtK(top_k=config['top_k']) self._metron_t = MetronAtK(top_k=config['top_k']) self._writer = SummaryWriter(log_dir='runs/{}'.format(config['alias'])) # tensorboard writer self._writer.add_text('config', str(config), 0) self.opt = use_optimizer(self.model, config) # explicit feedback # self.crit = torch.nn.MSELoss() # implicit feedback self.crit = torch.nn.BCELoss()
def __init__(self, config): super(MatrixFactorization, self).__init__() self.config = config self._metron = MetronAtK(top_k= config['topk']) self.num_users = config['num_users'] self.num_items = config['num_items'] self.latent_dim = config['latent_dim'] self.embedding_user = torch.nn.Embedding(num_embeddings=self.num_users, embedding_dim=self.latent_dim) self.embedding_item = torch.nn.Embedding(num_embeddings=self.num_items, embedding_dim=self.latent_dim)
def __init__(self, config): self.config = config # model configuration self._metron = MetronAtK(top_k=10) self.opt = use_optimizer(self.model, config) self.model_name = config['model'] # explicit feedback # self.crit = torch.nn.MSELoss() # implicit feedback if self.model_name == 'MF': self.crit = torch.nn.MSELoss() else: self.crit = torch.nn.BCELoss()
def __init__(self, config): self.config = config # model configuration self._metron = MetronAtK() self._writer = SummaryWriter(log_dir='runs/{}'.format( config['alias'])) # tensorboard writer self._writer.add_text('config', str(config), 0) self.opt = use_optimizer(self.model, config) if not config['implicit']: # explicit feedback self.crit = torch.nn.MSELoss() else: # implicit feedback self.crit = torch.nn.BCEWithLogitsLoss()
def __init__(self, config): self.config = config # model configuration self._metron = MetronAtK(top_k=10) self._writer = SummaryWriter(log_dir='runs/{}'.format( config['alias'])) # tensorboard writer self._writer.add_text('config', str(config), 0) self.opt = use_optimizer(self.model, config) self.crit = torch.nn.BCELoss() self.mse = torch.nn.MSELoss() self.sparse = False if config['friend_item_matrix'].split(".")[-1] == "npz": self.friend_item_matrix = scipy.sparse.load_npz( config['friend_item_matrix']) self.sparse = True else: self.friend_item_matrix = np.load(config['friend_item_matrix'])
def __init__(self, config): super(GMF, self).__init__() self.config = config self._metron = MetronAtK(top_k= config['topk']) self.crit = torch.nn.BCEWithLogitsLoss() self.num_users = config['num_users'] self.num_items = config['num_items'] self.latent_dim = config['latent_dim'] self.embedding_user = torch.nn.Embedding(num_embeddings=self.num_users, embedding_dim=self.latent_dim) self.embedding_item = torch.nn.Embedding(num_embeddings=self.num_items, embedding_dim=self.latent_dim) self.affine_output = torch.nn.Linear(in_features=self.latent_dim, out_features=1) self.bpr = config['BPR_loss'] self.logsigmoid = torch.nn.LogSigmoid()
def __init__(self, config): """ Function to initialize the engine :param config: configuration dictionary """ self.config = config # model configuration self._metron = MetronAtK(top_k=10) # Metrics for Top-10 self._writer = SummaryWriter(log_dir='runs/{}'.format( config['alias'])) # Tensorboard Writer self._writer.add_text('config', str(config), 0) # String output for Tensorboard Writer self.opt = use_optimizer(self.model, config) # set optimizer # self.crit = torch.nn.MSELoss() # mean squared error loss for explicit feedback self.crit = torch.nn.BCELoss( ) # binary cross entropy loss for implicit feedback
def __init__(self): self._metron = MetronAtK(top_k=10)