Question on documentation

In the init, what does the asterix mean in get_emb(*o). I looked online and could not find a lot. Is this a pointer? Also how are does the model get the cats and conts arrays? We don’t define users or movies in the init function. Am I missing something?

class EmbeddingNet(nn.Module):
def __init__(self, n_users, n_movies, nh=10, p1=0.05, p2=0.5):
    (self.u, self.m) = [get_emb(*o) for o in [
        (n_users, n_factors), (n_movies, n_factors)]]
    self.lin1 = nn.Linear(n_factors*2, nh)
    self.lin2 = nn.Linear(nh, 1)
    self.drop1 = nn.Dropout(p1)
    self.drop2 = nn.Dropout(p2)
def forward(self, cats, conts):
    users,movies = cats[:,0],cats[:,1]
    x = self.drop1([self.u(users),self.m(movies)], dim=1))
    x = self.drop2(F.relu(self.lin1(x)))
    return F.sigmoid(self.lin2(x)) * (max_rating-min_rating+1) + min_rating-0.5

Should be unpacking?

That makes sense now. Thank you!

Do you possibly (or anyone else) know how pytorch gets which data is categorical and which is continuous? (Like in the forward function I have to input a cats and conts)