# Load your data
dls = CollabDataLoaders.from_df(data, user_name = "user_id", item_name = "name", rating_name = "rating", bs=64, seed = 0, valid_pct=0.1)

# Store order of classes in both user_id and name 
order = {k:list(v) for k,v in dls.classes.items()}
with open("dataloader_order.pkl", "wb") as f:
    pickle.dump(order, f)
    f.close()

# Store positions of the users in train dataset and validation dataset for retrieval
obj = {"Train_users": dls.train_ds.xs.user_id.unique(),
       "Train_venues":dls.train_ds.xs.name.unique(),
       "Valid_users":dls.valid_ds.xs.user_id.unique(),
       "Valid_venues":dls.valid_ds.xs.name.unique()}

with open("dataloader_train_valid_split.pkl", "wb") as f:
    pickle.dump(obj, f)
    f.close()