/pylot

Experiment management for Deep Learning science

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

PYLOT

PyTorch NumPy Pandas scikit-learn SciPy

This library is designed as a supporting library to my other research efforts in Deep Learning using PyTorch. It has many features and implementations but some of the most relevant ones:

  • ๐Ÿงช Experiment Management - Human friendly classes to wrap the complexity of running experiments. Experiments can be loaded, providing convient access to model, data and logged results.
  • ๐Ÿš€ Flexible Compilation - Experiment options are specified via hierarchical YAML configs that are implicitly verified. No more argparse.
  • โ˜Ž๏ธ Two-way Callbacks - To modify experiments in a flexible and modular way, Pylot uses callbacks to extend the behavior of experiments.
  • ๐Ÿ’พ Simplified I/O - Pylot removes the pains of loading/saving data through its many OOP interfaces in util.
  • ๐Ÿ“Š Results Analysis - Result aggregation primitives such as Pareto frontiers, bootstrapping, and recursive selection are included.
  • ๐Ÿ“ˆ Metrics and Losses - Implementation of common Computer Vision metrics and losses in pure PyTorch
  • ๐Ÿ˜ Model/Layer/Optim ZOO - Pylot includes implementations of popular deep learning models, building blocks and optimization algorithms, such as: Sharpness Aware Minimization (SAM), Exponential Moving Average Weights (EMA), U-Net models, Voxelmorph networks, Hypernetworks, SqueezeExcitation layers and many many more.
  • โœ… Extensive Type Validation - Type hints are included and enforced thanks to pydantic.
  • ๐Ÿผ Pandas Extensions - Pandas DataFrame API is extended to better handle result dataframes, with methods such as .select, .drop_constant, .unique_per_col or the UnixAccessor functionality.
  • ๐ŸŽ๏ธ Designed for Speed - From careful I/O considerations to CUDA optimizations, pylot is painstakingly designed with efficiency and speed in mind.