Skip to content

Commit

Permalink
Fix: migrate to torch0.4
Browse files Browse the repository at this point in the history
  • Loading branch information
yihong-chen committed Mar 21, 2019
1 parent 1cca0a9 commit acd7f92
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 15 deletions.
7 changes: 2 additions & 5 deletions src/engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,10 @@ def train_single_batch(self, users, items, ratings):
users, items, ratings = users.cuda(), items.cuda(), ratings.cuda()
self.opt.zero_grad()
ratings_pred = self.model(users, items)
loss = self.crit(ratings_pred, ratings)
loss = self.crit(ratings_pred.view(-1), ratings)
loss.backward()
self.opt.step()
if self.config['use_cuda'] is True:
loss = loss.data.cpu().numpy()[0]
else:
loss = loss.data.numpy()[0]
loss = loss.item()
return loss

def train_an_epoch(self, train_loader, epoch_id):
Expand Down
17 changes: 11 additions & 6 deletions src/train.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,14 @@
from neumf import NeuMFEngine
from data import SampleGenerator

gmf_config = {'alias': 'gmf_factor8neg4',
gmf_config = {'alias': 'gmf_factor8neg4-adam-decayneg4-torch4',
'num_epoch': 200,
'batch_size': 1024,
# 'optimizer': 'sgd',
# 'optimizer': 'rmsprop',
# 'rmsprop_lr': 1e-3,
# 'rmsprop_alpha': 0.99,
# 'rmsprop_momentum': 0,
'optimizer': 'adam',
'adam_lr': 1e-3,
'num_users': 6040,
Expand All @@ -16,7 +21,7 @@
'num_negative': 4,
'l2_regularization': 0.01,
'use_cuda': True,
'device_id': 7,
'device_id': 0,
'model_dir':'checkpoints/{}_Epoch{}_HR{:.4f}_NDCG{:.4f}.model'}

mlp_config = {'alias': 'mlp_factor8neg4_bz256_166432168_pretrain_reg_0.0000001',
Expand Down Expand Up @@ -73,10 +78,10 @@
sample_generator = SampleGenerator(ratings=ml1m_rating)
evaluate_data = sample_generator.evaluate_data
# Specify the exact model
# config = gmf_config
# engine = GMFEngine(config)
config = mlp_config
engine = MLPEngine(config)
config = gmf_config
engine = GMFEngine(config)
# config = mlp_config
# engine = MLPEngine(config)
# config = neumf_config
# engine = NeuMFEngine(config)
for epoch in range(config['num_epoch']):
Expand Down
10 changes: 6 additions & 4 deletions src/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,13 @@ def use_cuda(enabled, device_id=0):


def use_optimizer(network, params):
if params['optimizer'] == 'adam':
if params['optimizer'] == 'sgd':
optimizer = torch.optim.SGD(network.parameters(), lr=params['adam_lr'])
elif params['optimizer'] == 'adam':
optimizer = torch.optim.Adam(network.parameters(), lr=params['adam_lr'], weight_decay=params['l2_regularization'])
elif params['optimizer'] == 'rmsprop':
optimizer = torch.optim.RMSprop(network.parameters(),
lr=params['rmsprop_lr'],
alpha=params['rmsprop_alpha'],
momentum=params['rmsprop_momentum'])
lr=params['rmsprop_lr'])
# alpha=params['rmsprop_alpha'],
# momentum=params['rmsprop_momentum'])
return optimizer

0 comments on commit acd7f92

Please sign in to comment.