Skip to content

Lightweight library for executing PyTorch experiments without boilerplate code.

License

Notifications You must be signed in to change notification settings

cschoeller/pycandle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# PyCandle

PyCandle is a lightweight library for pytorch that makes running experiments easy, structured, repeatable and avoids boilerplate code. It maintains flexibilty and allows to train also more complex models like recurrent or generative neural networks conveniently.

Usage

This code snippet creates a timestamped directory for the current experiment, runs the training of the model, creates a backup of all used code, logs current git hash and forks console output into a log file:

model = Net().cuda()
experiment = Experiment('mnist_example')
train_loader = load_dataset(batch_size_train=64)
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
model_trainer = ModelTrainer(model, optimizer, F.nll_loss, 20, train_loader, device=0)
model_trainer.start_training()

A complete example for training a model to classify hand-written MNIST digits can be found in minimal_example/mnist.py.

Installation

Using PyCandle is very simple: Clone the repository anywhere on your machine and then create symlink with ln -s <path> in your machine learning project that points to the pycandle folder. Then you can just include modules with import pycandle.*. This is also how we use it in our example.

Alternatively, it is now possible to install PyCandle with pip:

pip3 install pycandle

Requirements

We tested PyCandle with the dependency versions listed here. However, PyCandle can also work with newer versions if they are downward compatible.

  • Python >= 3.5
  • PyTorch >= 1.2
  • numpy >= 1.16.4
  • torchvision >= 0.2.1 (for examples)
  • matplotlib >= 2.1.1 (for examples)

About

Lightweight library for executing PyTorch experiments without boilerplate code.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages