Skip to main content

A simple PyTorch checkpoint manager

Project description

PyTorch Checkpoint Manager

A custom PyTorch checkpoint manager inspired by TensorFlow's CheckpointManager. Specify the necessary arguments in the constructor and then use the CheckpointManager.save() and CheckpointManager.load() methods to save/load models. Functionality is similar to that of torch.save() and torch.load().

Example usage

The following is a simple convolutional network for demonstrating the checkpoint manager's functionality.

Imports:

# Neural network source: https://pytorch.org/tutorials/recipes/recipes/saving_and_loading_a_general_checkpoint.html

import torch
import torch.nn as nn
from ckpt_manager import CheckpointManager

Create the neural network and its optimizer:

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(3, 6, 5)
        self.pool = nn.MaxPool2d(2, 2)
        self.conv2 = nn.Conv2d(6, 16, 5)
        self.fc1 = nn.Linear(16 * 5 * 5, 120)
        self.fc2 = nn.Linear(120, 84)
        self.fc3 = nn.Linear(84, 10)

    def forward(self, x):
        x = self.pool(F.relu(self.conv1(x)))
        x = self.pool(F.relu(self.conv2(x)))
        x = x.view(-1, 16 * 5 * 5)
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = self.fc3(x)
        return x

net = Net()
optimizer = torch.optim.SGD(net.parameters(), lr=0.001, momentum=0.9)

Create the CheckpointManager:

manager = CheckpointManager(
    assets={
        'model' : net.state_dict(),
        'optimizer' : optimizer.state_dict()
    },
    directory='training_checkpoints',
    file_name='model',
    maximum=3,
    file_format='pt'
)

Save the states to the directory specified in the constructor:

manager.save()

Load the states from the directory:

load_data = manager.load()

net.load_state_dict(load_data['model'])
optimizer.load_state_dict(load_data['optimizer'])

If there is nothing to load, net and optimizer won't be altered.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytorch-ckpt-manager-0.1.2.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

pytorch_ckpt_manager-0.1.2-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file pytorch-ckpt-manager-0.1.2.tar.gz.

File metadata

  • Download URL: pytorch-ckpt-manager-0.1.2.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for pytorch-ckpt-manager-0.1.2.tar.gz
Algorithm Hash digest
SHA256 a0b8c509eda0b5195dbb6499f648a98f7defdcdf2ed734fafdefb2f8beaf455c
MD5 5e99828aac42c2c645c91be4643194a2
BLAKE2b-256 c36f1d4496ea7a39bfd96d9bd411ac9e682a7a5b325778b6de8e8ca0452f6389

See more details on using hashes here.

File details

Details for the file pytorch_ckpt_manager-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: pytorch_ckpt_manager-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for pytorch_ckpt_manager-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f2a29e16dd64ad354aa4eab3b5cc630da9064bdd64f8fd965dbf9e35b838adcc
MD5 e32f0c27a3959c6c948a5b7a1dc43a04
BLAKE2b-256 59869dd133fb92b24568a824bc96b739bed4118079d83cb461df69d235eccf3c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page