Skip to main content

A library based on Ignite to help you train and evaluate PyTorch neural networks more easily.

Project description

flame

PyPI - Python Version GitHub GitHub Repo stars GitHub forks Tests codecov

Flame is a library that helps develop neural networks fast and flexibly. It is built on PyTorch Ignite, a high-level library in PyTorch Ecosystem.

Contents

Why flame?

When developing neural networks people train and evaluate models a lot and repeat these works on many problems. Flame is created for solving two needs:

  • Templates for doing experiments: flame provides templates for neural network development with common utilities like saving checkpoints periodically, resume training, logging, evaluating, etc.
  • The way to add functionalities flexibly: depending on different problems developers have different requirements for the training and testing. They might want to stop the training progress if there is no improvement, plotting the results after each epoch or they just want a vanilla training loop. Now with flame, you can use any on-the-shelf metrics and handlers from Ignite or your own just by editing the configuration file.

Concepts

TBD

Installation

Create your new environment with Python 3 and install flame by pip:

pip install pytorch-flame

Get started

Usage

Flame provides two commands:

  • Initialize a new project
    usage: flame init [-h] [-f] [directory]
    
    positional arguments:
      directory   Directory in which the new project is initialized. If not specified, it will be initialized in the current directory.
    
    optional arguments:
      -h, --help  show this help message and exit
      -f, --full  Whether to create a full template project or not.
    
  • Run the training or testing
    usage: flame run [-h] file
    
    positional arguments:
      file        Config file
    
    optional arguments:
      -h, --help  show this help message and exit
    

Run your first experiment

Let's get started with a simple experiment: classification on the MNIST dataset.

  1. Flame runs experiments with configs so you need to create configs first. Run commands
    mkdir mnist-classifcation && cd mnist-classification
    flame init
    
    or you can run just command
    flame init mnist-classification
    
    flame will create the folder and initialize in it. The folder created will have the structure:
    mnist-classification/
    └── configs
        ├── test.yml
        └── train.yml
    
    You can add -f or --full to init command for creating an extra file run.py in case you prefer running python run.py rather than flame run for some reason. Then the structure will be:
    mnist-classification/
    ├── configs
    │   ├── test.yml
    │   └── train.yml
    └── run.py
    
  2. MNIST dataset and the model will be got from torchvision, so we need to install it.
    pip install torchvision
    
  3. Now, you have all for the training. cd to mnist-classification and run it by
    flame run configs/train.yml
    
    To see how the training is going on, start Tensorboard
    tensorboard --logdir logs/
    
  4. Checkpoints will be saved in checkpoints folder. Say the training is done and you want to evaluate the model checkpoints/best_model.pt, for example, change value checkpoint.loader.kwargs.path in configs/test.yml to checkpoints/best_model.pt.
    checkpoint:
      loader:
        module: flame.handlers
        name: CheckpointLoader
        kwargs:
          path: "'checkpoints/best_model.pt'"
    
    Run the following command to start evaluating the model:
    flame run configs/test.yml
    

That's it! You have just completed training and evaluating with flame.

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-flame-0.1.2.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

pytorch_flame-0.1.2-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file pytorch-flame-0.1.2.tar.gz.

File metadata

  • Download URL: pytorch-flame-0.1.2.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.13

File hashes

Hashes for pytorch-flame-0.1.2.tar.gz
Algorithm Hash digest
SHA256 e451149f717acdec134eead6b0ae4149ae29d34b4ac464c6cc83d56485335e71
MD5 12eaa0c4fdb99cda418beef7aaf883e7
BLAKE2b-256 8bf4da5e90c26cb493d58b18fa53b48850a5dca7a553919ecf96d8ded1110daf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytorch_flame-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b4bf00e25e11a2c1c80dae3e829ada4da31c4a3cf03171ae390bdf0af42a1ab5
MD5 523db8ee4c060647fdbd428f4df82167
BLAKE2b-256 13331dd54210afda808126fa259b0cfd9b7192f795ca24d22971e35f23e3504c

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