bs-scheduler
A Batch Size Scheduler library compatible with PyTorch DataLoaders.
Documentation
Why use a Batch Size Scheduler?
- Using a big batch size has several advantages:
- Better hardware utilization.
- Enhanced parallelism.
- Faster training.
- However, using a big batch size from the start may lead to a generalization gap.
- Therefore, the solution is to gradually increase the batch size, similar to a learning rate decay policy.
- See Don't Decay the Learning Rate, Increase the Batch Size.
Available Schedulers
Batch Size Schedulers
LambdaBS- sets the batch size to the base batch size times a given lambda.MultiplicativeBS- sets the batch size to the current batch size times a given lambda.StepBS- multiplies the batch size with a given factor at a given number of steps.MultiStepBS- multiplies the batch size with a given factor each time a milestone is reached.ConstantBS- multiplies the batch size by a given factor once and decreases it again to its base value after a given number of steps.LinearBS- increases the batch size by a linearly changing multiplicative factor for a given number of steps.ExponentialBS- increases the batch size by a given $\gamma$ each step.PolynomialBS- increases the batch size using a polynomial function in a given number of steps.CosineAnnealingBS- increases the batch size to a maximum batch size and decreases it again following a cyclic cosine curve.IncreaseBSOnPlateau- increases the batch size each time a given metric has stopped improving for a given number of steps.CyclicBS- cycles the batch size between two boundaries with a constant frequency, while also scaling the distance between boundaries.CosineAnnealingBSWithWarmRestarts- increases the batch size to a maximum batch size following a cosine curve, then restarts while also scaling the number of iterations until the next restart.OneCycleBS- decreases the batch size to a minimum batch size then increases it to a given maximum batch size, following a linear or cosine annealing strategy.SequentialBS- calls a list of schedulers sequentially given a list of milestone points which reflect which scheduler should be called when.ChainedBSScheduler- chains a list of batch size schedulers and calls them together each step.
Installation
Please install PyTorch first before installing this repository.
pip install bs-scheduler
Licensing
The library is licensed under the BSD-3-Clause license.
Citation
To be added...
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bs_scheduler-1.0.2.tar.gz
(26.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bs_scheduler-1.0.2.tar.gz.
File metadata
- Download URL: bs_scheduler-1.0.2.tar.gz
- Upload date:
- Size: 26.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52694013aec77469c998233dbbf1ed39707afa7c397f02fc9c48dcb22e48949c
|
|
| MD5 |
aff58b4f62eac174dbcd1ceb7e104901
|
|
| BLAKE2b-256 |
4e0b32621a3ec487387874d6605a89078319179bfdf90a91d315ff69e77e3637
|
File details
Details for the file bs_scheduler-1.0.2-py3-none-any.whl.
File metadata
- Download URL: bs_scheduler-1.0.2-py3-none-any.whl
- Upload date:
- Size: 18.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
936d68a774232cd5ecdc5bc17a7e4149eac13ff24d86433c4ce4d86abc135528
|
|
| MD5 |
21a192c74d695fcbb26bcf04712f47aa
|
|
| BLAKE2b-256 |
985d2eb661c0a9dd0307ad538e9db0a5a71f83c248cdb0b832e5487b97beb807
|