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.1.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pytorch-ckpt-manager-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 d68196db186b47d1fd063b0fb2609668f33e11c172b49763294e458404066312
MD5 ce61970aa28e0895356a8cfaedd88124
BLAKE2b-256 efbd5af8331893de94a02f86cfcc82ae65b9926f50839aabd0b05e8f284c260f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pytorch_ckpt_manager-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4546a13c188c09c9fde53a296397346ce45e2fb772dd25e7902fc2ae24ae44a2
MD5 d816ea0b081d01d8992e3278408634b7
BLAKE2b-256 6d281c01b2998980f66b48e130882747a7ee38645d81e037551f93009aa2f95b

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