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
FFCV support #1439
FFCV support #1439
Conversation
Pull Request Test Coverage Report for Build 5716867115
💛 - Coveralls |
Updated PR description, added examples, added a unit test, and removed the remaining workarounds. I think the PR is ready! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi Lorenzo, I did a more thorough review of the PR. It's mostly about missing docstrings.
Looking at the changes, I fell even more strongly that we should try to move the dataloader creation outside. In your PR you had to add custom code wherever we created dataloaders. This is quite difficult to track (in fact, we have some plugins that make their own dataloaders).
Apart from the minor changes requested in the comments I think the PR can be accepted as is
Let me know when I can merge this. |
It can be merged now! |
Current status: barely working draft
How to enable the support for FFCV in Avalanche:
enable_ffcv
function, as shown in theffcv_enable.py
script in examples.Offers a very good speed when compared to the PyTorch loader especially on "big" benchmarks like TinyImagenet. Minor improvement with the CIFAR or MNIST datasets, where it's still good to offer the same performance for fewer workers.
A few benchmarks, such as CORe50 NICv2 are not properly supported as they are implemented as one leaf dataset per experience. Currently supported benchmarks are the ones for which one single dataset is split into multiple experiences (like the SplitMNIST, SplitCIFAR, ...). Better support for CORe will come in the next PRs.