这是indexloc提供的服务,不要输入任何密码
Skip to content
This repository was archived by the owner on Aug 3, 2021. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions infer.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
# Copyright (c) 2017 NVIDIA Corporation
import torch
import argparse
import copy
from reco_encoder.data import input_layer
from reco_encoder.model import model
import torch.optim as optim
import torch.nn as nn
from torch.autograd import Variable
import copy
import time
from pathlib import Path
import numpy as np

parser = argparse.ArgumentParser(description='RecoEncoder')

Expand Down
2 changes: 0 additions & 2 deletions reco_encoder/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
# Copyright (c) 2017 NVIDIA Corporation
from . import data
from . import model
1 change: 0 additions & 1 deletion reco_encoder/data/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
# Copyright (c) 2017 NVIDIA Corporation
from . import input_layer
2 changes: 0 additions & 2 deletions reco_encoder/model/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
# Copyright (c) 2017 NVIDIA Corporation
from .model import AutoEncoder
from .model import MSEloss
6 changes: 0 additions & 6 deletions test/context.py

This file was deleted.

7 changes: 3 additions & 4 deletions test/data_layer_tests.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,22 @@
# Copyright (c) 2017 NVIDIA Corporation
import unittest
import sys
from .context import reco_encoder
from reco_encoder.data.input_layer import UserItemRecDataProvider

class UserItemRecDataProviderTest(unittest.TestCase):
def test_1(self):
print("Test 1 started")
params = {}
params['batch_size'] = 64
params['data_dir'] = 'test/testData_iRec'
data_layer = reco_encoder.data.input_layer.UserItemRecDataProvider(params=params)
data_layer = UserItemRecDataProvider(params=params)
print("Total items found: {}".format(len(data_layer.data.keys())))
self.assertTrue(len(data_layer.data.keys())>0)

def test_iterations(self):
params = {}
params['batch_size'] = 32
params['data_dir'] = 'test/testData_iRec'
data_layer = reco_encoder.data.input_layer.UserItemRecDataProvider(params=params)
data_layer = UserItemRecDataProvider(params=params)
print("Total items found: {}".format(len(data_layer.data.keys())))
for i, data in enumerate(data_layer.iterate_one_epoch()):
print(i)
Expand Down
33 changes: 16 additions & 17 deletions test/test_model.py
Original file line number Diff line number Diff line change
@@ -1,25 +1,24 @@
# Copyright (c) 2017 NVIDIA Corporation
import unittest
import sys
sys.path.append('data')
sys.path.append('model')
import torch
from .context import reco_encoder
import torch.optim as optim
import torch.nn as nn
from torch.autograd import Variable
from reco_encoder.data.input_layer import UserItemRecDataProvider
from reco_encoder.model.model import AutoEncoder, MSEloss
sys.path.append('data')
sys.path.append('model')

class iRecAutoEncoderTest(unittest.TestCase):
def test_CPU(self):
print("iRecAutoEncoderTest Test on CPU started")
params = {}
params['batch_size'] = 64
params['data_dir'] = 'test/testData_iRec'
data_layer = reco_encoder.data.input_layer.UserItemRecDataProvider(params=params)
data_layer = UserItemRecDataProvider(params=params)
print("Vector dim: {}".format(data_layer.vector_dim))
print("Total items found: {}".format(len(data_layer.data.keys())))
self.assertTrue(len(data_layer.data.keys())>0)
encoder = reco_encoder.model.AutoEncoder(layer_sizes=[data_layer.vector_dim, 256, 128], is_constrained=True)
encoder = AutoEncoder(layer_sizes=[data_layer.vector_dim, 256, 128], is_constrained=True)
print(encoder)
print(encoder.parameters())
optimizer = optim.SGD(encoder.parameters(), lr=0.01, momentum=0.9)
Expand All @@ -28,7 +27,7 @@ def test_CPU(self):
inputs = Variable(mb.to_dense())
optimizer.zero_grad()
outputs = encoder(inputs)
loss, num_ratings = reco_encoder.model.MSEloss(outputs, inputs)
loss, num_ratings = MSEloss(outputs, inputs)
loss = loss / num_ratings
loss.backward()
optimizer.step()
Expand All @@ -39,10 +38,10 @@ def test_GPU(self):
params = {}
params['batch_size'] = 32
params['data_dir'] = 'test/testData_iRec'
data_layer = reco_encoder.data.input_layer.UserItemRecDataProvider(params=params)
data_layer = UserItemRecDataProvider(params=params)
print("Total items found: {}".format(len(data_layer.data.keys())))
self.assertTrue(len(data_layer.data.keys()) > 0)
encoder = reco_encoder.model.AutoEncoder(layer_sizes=[data_layer.vector_dim, 1024, 512, 512, 512, 512, 128])
encoder = AutoEncoder(layer_sizes=[data_layer.vector_dim, 1024, 512, 512, 512, 512, 128])
encoder.cuda()
optimizer = optim.Adam(encoder.parameters())
print(encoder)
Expand All @@ -53,7 +52,7 @@ def test_GPU(self):
inputs = Variable(mb.to_dense().cuda())
optimizer.zero_grad()
outputs = encoder(inputs)
loss, num_ratings = reco_encoder.model.MSEloss(outputs, inputs)
loss, num_ratings = MSEloss(outputs, inputs)
loss = loss / num_ratings
loss.backward()
optimizer.step()
Expand All @@ -67,18 +66,18 @@ def test_CPU(self):
params = {}
params['batch_size'] = 256
params['data_dir'] = 'test/testData_uRec'
data_layer = reco_encoder.data.input_layer.UserItemRecDataProvider(params=params)
data_layer = UserItemRecDataProvider(params=params)
print("Vector dim: {}".format(data_layer.vector_dim))
print("Total items found: {}".format(len(data_layer.data.keys())))
self.assertTrue(len(data_layer.data.keys())>0)
encoder = reco_encoder.model.AutoEncoder(layer_sizes=[data_layer.vector_dim, 128, data_layer.vector_dim])
encoder = AutoEncoder(layer_sizes=[data_layer.vector_dim, 128, data_layer.vector_dim])
optimizer = optim.SGD(encoder.parameters(), lr=0.1, momentum=0.9)
for epoch in range(1):
for i, mb in enumerate(data_layer.iterate_one_epoch()):
inputs = Variable(mb.to_dense())
optimizer.zero_grad()
outputs = encoder(inputs)
loss, num_ratings = reco_encoder.model.MSEloss(outputs, inputs)
loss, num_ratings = MSEloss(outputs, inputs)
loss = loss / num_ratings
loss.backward()
optimizer.step()
Expand All @@ -91,10 +90,10 @@ def test_GPU(self):
params = {}
params['batch_size'] = 64
params['data_dir'] = 'test/testData_uRec'
data_layer = reco_encoder.data.input_layer.UserItemRecDataProvider(params=params)
data_layer = UserItemRecDataProvider(params=params)
print("Total items found: {}".format(len(data_layer.data.keys())))
self.assertTrue(len(data_layer.data.keys()) > 0)
encoder = reco_encoder.model.AutoEncoder(layer_sizes=[data_layer.vector_dim, 1024, 512, 512, 128])
encoder = AutoEncoder(layer_sizes=[data_layer.vector_dim, 1024, 512, 512, 128])
encoder.cuda()
optimizer = optim.Adam(encoder.parameters())
print(encoder)
Expand All @@ -105,7 +104,7 @@ def test_GPU(self):
inputs = Variable(mb.to_dense().cuda())
optimizer.zero_grad()
outputs = encoder(inputs)
loss, num_ratings = reco_encoder.model.MSEloss(outputs, inputs)
loss, num_ratings = MSEloss(outputs, inputs)
loss = loss / num_ratings
loss.backward()
optimizer.step()
Expand Down