Skip to main content

Early Stopping for PyTorch

Early stopping is a form of regularization used to avoid overfitting on the training dataset. Early stopping keeps track of the validation loss, if the loss stops decreasing for several epochs in a row the training stops. The EarlyStopping class in early_stopping_pytorch/early_stopping.py is used to create an object to keep track of the validation loss while training a PyTorch model. It will save a checkpoint of the model each time the validation loss decrease. We set the patience argument in the EarlyStopping class to how many epochs we want to wait after the last time the validation loss improved before breaking the training loop. There is a simple example of how to use the EarlyStopping class in the MNIST_Early_Stopping_example notebook.

Underneath is a plot from the example notebook, which shows the last checkpoint made by the EarlyStopping object, right before the model started to overfit. It had patience set to 20.

Loss Plot

Installation

pip install early-stopping-pytorch

Option 2: Install from Source

For development or if you want the latest unreleased changes:

1. Clone the Repository

git clone https://github.com/your_username/early-stopping-pytorch.git
cd early-stopping-pytorch

2. Set Up the Virtual Environment

Run the setup script to create a virtual environment and install all necessary dependencies.

./setup_dev_env.sh

3. Activate the Virtual Environment

Activate the virtual environment:

source dev-venv/bin/activate

4. Install the Package in Editable Mode

Install the package locally in editable mode so you can use it immediately:

pip install -e .

Usage

from early_stopping_pytorch import EarlyStopping

# Initialize early stopping object
early_stopping = EarlyStopping(patience=7, verbose=True)

# In your training loop:
for epoch in range(num_epochs):
    # ... training code ...
    val_loss = ... # calculate validation loss

    # Early stopping call
    early_stopping(val_loss, model)
    if early_stopping.early_stop:
        print("Early stopping triggered")
        break

For a complete example, see the MNIST Early Stopping Example Notebook.

Citation

If you find this package useful in your research, please consider citing it as:

@misc{early_stopping_pytorch,
  author = {Bjarte Mehus Sunde},
  title = {early-stopping-pytorch: A PyTorch utility package for Early Stopping},
  year = {2024},
  url = {https://github.com/Bjarten/early-stopping-pytorch},
}

References

The EarlyStopping class in early_stopping_pytorch/early_stopping.py is inspired by the ignite EarlyStopping class.

Metadata

Release files for early-stopping-pytorch 1.0.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for early-stopping-pytorch 1.0.10
File Size Uploaded
early_stopping_pytorch-1.0.10.tar.gz 7.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for early-stopping-pytorch 1.0.10
File Interpreter ABI Platform
early_stopping_pytorch-1.0.10-py3-none-any.whl Python 3 none any Details

Total release size: 11.9 kB

Release files / early_stopping_pytorch-1.0.10.tar.gz

Download URL early_stopping_pytorch-1.0.10.tar.gz
Size 7.4 kB
Tags Source
SHA-256 checksum
How to use checksums
8f08302b3fb85307c386b4313cc1eb58b6e46f4dd72661baaba2c341b3d1f345
BLAKE2b-256 checksum
How to use checksums
5a498c5a73d7e8a5efc800c83e1e3fc4fe772e542f4611f50b0d5d154b261ccf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2024.

Transparency log

Release files / early_stopping_pytorch-1.0.10-py3-none-any.whl

Download URL early_stopping_pytorch-1.0.10-py3-none-any.whl
Size 4.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6015220ec6a191d9bec1cf1a58c89e4d9ae3cef9ff74b060433585e62d18a20b
BLAKE2b-256 checksum
How to use checksums
a515451a596c1bcf0d8efdebde5eb21f646bd879929939560ed471229b52fa73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 11, 2024.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.10 This release

2 release files

1.0.7

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page