This repository has been archived by the owner on Nov 17, 2023. It is now read-only.
split_and_load can now handle num_ctx > num_data. Github Issue #13909 #14607
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Handles Issue #13909
when last batch size is smaller than the number of contexts,
the previous utility function
gluon.utils.split_and_load
throws an exceptionValueError: Too many slices for data with shape ....
However, we can just put one data per context and ignore the remaining contexts.
This integrates nicely with the given reproducing example code. (User does not need to modify the code)
where
data
andlabel
will only output data that exists in the first few of the given context.the forward / backward pass is only done in the contexts where needed. (remaining contexts does not need to do a fake forward/backward pass)
My concern is people can make mistakes when calculating mean of the losses.
So it would be nice if we add this behavior to the documentation. (
split_and_load
can output a list that has a size less than number of contexts when even_split=False)Checklist
Essentials
Please feel free to remove inapplicable items for your PR.
-> I believe this PR is just tiny change