ELVis is a PyTorch based library that aims to be an extensible tool to implement multi-gpu, mixed-precision Deep Learning experiments using yaml configurable file for clean setup.
pip install requirements.txt
cd elvis
pip install -e .
- distributed training
- mixed-precision training
- yaml configuration file
- logging
- Language-and-Vision architectures
The library offers different interfaces for neural architectures, trainers and data.
- Trainer: setup the training process from the yaml configuration file
- Meta-architecture: define the training pipeline for different tasks (e.g., VQA, Retrieval)
- Model: the specific model to be instantiated and trained for the task. Each model has different interfaces for different tasks. Each interface define how to read and format data for the trainer (e.g., create a sequence for a transformer, resize images for a CNN). Each interface in turn defines two methods:
- worker_fn: defines the data reading for each worker of the PyTorch's DataLoader
- collate_fn: defines how to batch data.
- Dataset: defines the dataset