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...
Metadata
Release files for bs-scheduler 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bs_scheduler-1.0.2.tar.gz | 26.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bs_scheduler-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 45.2 kB
Release files / bs_scheduler-1.0.2.tar.gz
| Download URL | bs_scheduler-1.0.2.tar.gz |
|---|---|
| Size | 26.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
52694013aec77469c998233dbbf1ed39707afa7c397f02fc9c48dcb22e48949c
|
|
BLAKE2b-256 checksum How to use checksums |
4e0b32621a3ec487387874d6605a89078319179bfdf90a91d315ff69e77e3637
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.21
|
Release files / bs_scheduler-1.0.2-py3-none-any.whl
| Download URL | bs_scheduler-1.0.2-py3-none-any.whl |
|---|---|
| Size | 18.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
936d68a774232cd5ecdc5bc17a7e4149eac13ff24d86433c4ce4d86abc135528
|
|
BLAKE2b-256 checksum How to use checksums |
985d2eb661c0a9dd0307ad538e9db0a5a71f83c248cdb0b832e5487b97beb807
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.21
|