Giter VIP home page Giter VIP logo

justusschock / trixi Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mic-dkfz/trixi

0.0 1.0 0.0 15.23 MB

Manage your machine learning experiments with trixi - modular, reproducible, high fashion. An experiment infrastructure optimized for PyTorch, but flexible enough to work for your framework and your tastes.

Home Page: https://trixi.readthedocs.io

License: MIT License

Makefile 0.04% Python 86.67% CSS 1.38% JavaScript 0.75% HTML 11.16%

trixi's Introduction

DOI PyPI version Build Status Documentation Status GitHub

Finally get some structure into your machine learning experiments. trixi (Training & Retrospective Insights eXperiment Infrastructure) is a tool that helps you configure, log and visualize your experiments in a reproducible fashion.

Features

trixi consists of three parts:

  • Logging API
    Log whatever data you like in whatever way you like to whatever backend you like.

  • Experiment Infrastructure
    Standardize your experiment, let the framework do all the inconvenient stuff, and simply start, resume, change and finetune all your experiments.

  • Experiment Browser
    Compare, combine and visually inspect the results of your experiments.

An implementation diagram is given here.

Logging API

The Logging API provides a standardized way for logging results to different backends. The Logging API supports (among others):

  • Values
  • Text
  • Plots (Bar, Line, Scatter, Piechart, ...)
  • Images (Single, Grid)

And offers different Backends, e.g. :

And an experiment-logger for logging your experiments, which uses a file logger to automatically create a structured directory and allows storing of config, results, plots, dict, array, images, etc. That way your experiments will always have the same structure on disk.

Here are some examples:

visdom-logger

  • Files:

file-logger

  • Telegram:

telegram-logger

Experiment Infrastructure

The Experiment Infrastructure provides a unified way to configure, run, store and evaluate your results. It gives you an experiment interface, for which you can implement the training, validation and testing. Furthermore it automatically provides you with easy access to the Logging API and stores your config as well as the results for easy evaluation and reproduction. There is an abstract Experiment class and a PytorchExperiment with many convenience features.

exp-trainexp-test

For more info, visit the Documentation.

Experiment Browser

(We're currently remaking this from scratch, expect major improvements :))

The Experiment Browser offers a complete overview of experiments along with all config parameters and results. It also allows to combine and/or compare different experiments, giving you an interactive comparison highlighting differences in the configs and a detailed view of all images, plots, results and logs of each experiment, with live plots and more. trixi browser

Installation

Install trixi:

pip install trixi

Or to always get the newest version you can install trixi directly via git:

git clone https://github.com/MIC-DKFZ/trixi.git
cd trixi
pip install -e .

Documentation

The docs can be found here: trixi.rtfd.io

Or you can build your own docs using Sphinx.

Sphinx Setup

Install Sphinx (fixed to 1.7.0 for now because of issues with Readthedocs):
pip install sphinx==1.7.0

Generate HTML:
path/to/PROJECT/doc$ make html

index.html will be at:
path/to/PROJECT/doc/_build/html/index.html

Notes

  • Rerun make html each time existing modules are updated (this will automatically call sphinx-apidoc)
  • Do not forget indent or blank lines
  • Code with no classes or functions is not automatically captured using apidoc

Example Documentation

We use Google style docstrings:

def show_image(self, image, name, file_format=".png", **kwargs):
    """
    This function shows an image.

    Args:
        image(np.ndarray): image to be shown
        name(str): image title
    """

Examples

Examples can be found here for:

trixi's People

Contributors

dzimmerer avatar gregorkoehler avatar wasserth avatar dzimmm avatar emrys-merlin avatar swirkert avatar elpequeno avatar justusschock avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.