-
Notifications
You must be signed in to change notification settings - Fork 3.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Wide & Deep migration to PyTorch #2168
base: staging
Are you sure you want to change the base?
Conversation
Signed-off-by: David Davó <[email protected]>
Signed-off-by: David Davó <[email protected]>
Signed-off-by: David Davó <[email protected]>
Signed-off-by: David Davó <[email protected]>
Sorry @daviddavo I pressed the wrong action. I changed the PR to ready for review because we are having some problems with the tests. Hopefully, we can fix it by next week. |
NP, I still have quite some work to do |
FYI @daviddavo the tests should be working now after #2169 |
The tensorflow estimators approach currently used by recommenders uses a binary regressor (default value of On the PyTorch notebook the output is not binary, instead there is a class for each movie. The aim of this notebook is to predict the next movie to watch, and not to make a top-k recommendations, a different problem. The question is, what does the original paper do? Does it output a single scalar? Or does it output a vector with a value corresponding to each item? As I understand it, it should be a single value ( Nevertheless, I think I will modify the current model so the "head" returns a scalar and to get the top-k recommendations we pass all the possible user-item pairs, as the recommenders' tensorflow implementation does. Edit: NVIDIA's deep learning examples also output a single value. My doubts have been resolved but I'll keep this post as some kind of documentation. I'll finish the model and do the training soon. |
Signed-off-by: David Davó <[email protected]>
Loss function decreases over time in my jupyter notebook. the only thing remaining is the "software engineering" part |
Signed-off-by: David Davó <[email protected]>
Signed-off-by: David Davó <[email protected]>
Signed-off-by: David Davó <[email protected]>
Signed-off-by: David Davó <[email protected]>
Signed-off-by: David Davó <[email protected]>
Signed-off-by: David Davó <[email protected]>
Now that I'm testing it with the full 100k dataset, I realized its very slow. I will profile it next weekend, but I have a hunch that the problem is the DataLoader, which uses a lot of slow |
@daviddavo how are you doing with this PR? Let me know if you need any help |
Description
Migrating Wide & Deep out of tensorflow.
Note: Previously I have only used models from high level libraries like Keras. I'm doing this to learn PyTorch, so feel free to give me any pointers or even scrap everything if it is not useful.
Related Issues
References
Checklist:
git commit -s -m "your commit message"
.staging branch
AND NOT TOmain branch
.WIP Tasks
nn.Module
.fit()
and.recommend_k_items()
methodssave_checkpoints_steps
iterations inmodel_dir
log_every_n_iter
iterations instead of every itertorch.data.Dataset
to pass to the wrapper class