def getA(training): A = np.zeros((trStats["n_ratings"], trStats["n_movies"] + trStats["n_users"])) no_movies = trStats["n_movies"] data = lib.getTrainingData() for i, rating in enumerate(data): movie, user, r = rating A[i][movie] = 1 A[i][no_movies+user] = 1 print (A) return A
def getA(training): # A = np.zeros((trStats["n_ratings"], trStats["n_movies"] + trStats["n_users"])) # for i in range(0, trStats["n_ratings"] - 1): # A[i][training[i][0]] = training[i][2] # A[i][training[i] + trStats["n_movies"] - 1] = training[i][2] # A = np.zeros(trStats["n_users"], trStats["n_movies"]) # for i in range(0, trStats["n_ratings"]): # A[training[i][1]][training[i][0]] = A[training[i][2]] # return A A = np.zeros( (trStats["n_ratings"], trStats["n_movies"] + trStats["n_users"])) no_movies = trStats["n_movies"] data = lib.getTrainingData() for i, rating in enumerate(data): movie, user, r = rating A[i][movie] = 1 A[i][no_movies + user] = 1 return A
import numpy as np import rbm import projectLib as lib import pickle training = lib.getTrainingData() validation = lib.getValidationData() # You could also try with the chapter 4 data # training = lib.getChapter4Data() trStats = lib.getUsefulStats(training) vlStats = lib.getUsefulStats(validation) K = 5 # SET PARAMETERS HERE!!! # number of hidden units # F = 10 epochs = 30 # gradientLearningRate = 0.1 # file for past trained data fileName = 'best_W' try: # try to load existing trained weight, if any best_W = pickle.load(open(fileName, 'rb')) except: # otherwise, train/tune ## Parameter to tune
import numpy as np import rbm import projectLib as lib import pickle training = lib.getTrainingData() validation = lib.getValidationData() # You could also try with the chapter 4 data # training = lib.getChapter4Data() trStats = lib.getUsefulStats(training) vlStats = lib.getUsefulStats(validation) K = 5 # mode = 'batch' mode = 'single' finalW = np.zeros([5,5,5]) finalRMSE = 100 def run_RBM(F, epochs, epsilon, B, weightcost, momentum, f, mode): # Initialise all our arrays W = rbm.getInitialWeights(trStats["n_movies"], F, K) bestW = np.zeros(W.shape) bestRMSE = 100 posprods = np.zeros(W.shape) negprods = np.zeros(W.shape) grad = np.zeros(W.shape)