Spaces:
Runtime error
Runtime error
from fastai.collab import load_learner | |
from fastai.tabular.all import * | |
class DotProductBias(Module): | |
def __init__(self, n_users, n_movies, n_factors, y_range=(0,1.1)): | |
self.user_factors = Embedding(n_users, n_factors) | |
self.user_bias = Embedding(n_users, 1) | |
self.movie_factors = Embedding(n_movies, n_factors) | |
self.movie_bias = Embedding(n_movies, 1) | |
self.y_range = y_range | |
def forward(self, x): | |
users = self.user_factors(x[:,0]) | |
movies = self.movie_factors(x[:,1]) | |
res = (users * movies).sum(dim=1, keepdim=True) | |
res += self.user_bias(x[:,0]) + self.movie_bias(x[:,1]) | |
return sigmoid_range(res, *self.y_range) | |
def custom_accuracy(prediction, target): | |
# set all predictions above 0.95 as true positive (correct prediction) | |
prediction = torch.where(prediction > 0.95, torch.tensor(1.0), prediction) | |
# shape [64, 1] to [64] | |
target = target.squeeze(1) | |
correct = (prediction == target).float() | |
accuracy = correct.sum() / len(target) | |
return accuracy | |
async def setup_learner(model_filename: str): | |
learn = load_learner(model_filename) | |
learn.dls.device = 'cpu' | |
return learn |