{ "info": { "author": "Medical Image Computing Group, DKFZ", "author_email": "mic@dkfz-heidelberg.de", "bugtrack_url": null, "classifiers": [], "description": "[![DOI](https://zenodo.org/badge/134823632.svg)](https://zenodo.org/badge/latestdoi/134823632)\n[![PyPI version](https://badge.fury.io/py/trixi.svg)](https://badge.fury.io/py/trixi)\n[![Build Status](https://travis-ci.org/MIC-DKFZ/trixi.svg?branch=master)](https://travis-ci.org/MIC-DKFZ/trixi)\n[![Documentation Status](https://readthedocs.org/projects/trixi/badge/?version=latest)](https://trixi.readthedocs.io/en/latest/?badge=latest)\n[![Downloads](https://pepy.tech/badge/trixi)](https://pepy.tech/project/trixi)\n[![GitHub](https://img.shields.io/pypi/l/trixi.svg)](https://github.com/MIC-DKFZ/trixi/blob/master/LICENSE)\n

\n \n

\n\nFinally get some structure into your machine learning experiments.\n**trixi** (Training & Retrospective Insights eXperiment Infrastructure) is a tool that helps you configure, log and visualize your experiments in a reproducible fashion.\n\n* [Features](#features)\n* [Installation](#installation)\n* [Documentation](#documentation) ([trixi.rtfd.io](https://trixi.readthedocs.io/en/latest/))\n* [Examples](#examples)\n\n# Contribute\n\nWe're always grateful for contributions, even small ones! We're PhD students and this is just a side project, so there will always be something to improve.\n\nThe best way is to create pull requests on Github. Fork the repository and work either directly on develop or create a feature branch, whichever you like best. Then go to \"Pull requests\" on our Github, select \"New pull request\" and \"compare across forks\". Select our develop as base and your work as head/compare.\n\nWe currently don't support the full Github workflow, because we have to mirror from our working repository to Github, but don't worry, we can export the pull requests and apply them so that your contribution will still appear on Github :)\n\n# Features\n**trixi** consists of three parts:\n* Logging API
\n *Log whatever data you like in whatever way you like to whatever backend you like.*\n\n* Experiment Infrastructure
\n *Standardize your experiment, let the framework do all the inconvenient stuff, and simply start, resume,\n change and finetune all your experiments*.\n\n* Experiment Browser
\n *Compare, combine and visually inspect the results of your experiments*.\n\nAn implementation diagram is given [here](https://trixi.readthedocs.io/en/latest/class_diagram.html).\n\n### Logging API\n\nThe Logging API provides a standardized way for logging results to different backends.\nThe Logging API supports\n(among others):\n* Values\n* Text\n* Plots (Bar, Line, Scatter, Piechart, ...)\n* Images (Single, Grid)\n\nAnd offers different Backends, e.g. :\n* Visdom ([visdom-loggers](https://trixi.readthedocs.io/en/latest/_api/trixi.logger.html#module-trixi.logger.visdom))\n* TensorboardX ([tensorboard-loggers](https://trixi.readthedocs.io/en/latest/_api/trixi.logger.html#module-trixi.logger.tensorboard))\n* Matplotlib / Seaborn ([plt-loggers](https://trixi.readthedocs.io/en/latest/_api/trixi.logger.html#module-trixi.logger.plt))\n* Local Disk ([file-loggers](https://trixi.readthedocs.io/en/latest/_api/trixi.logger.html#module-trixi.logger.file))\n* Telegram & Slack ([message-loggers](https://trixi.readthedocs.io/en/latest/_api/trixi.logger.html#module-trixi.logger.message))\n\nAnd an [experiment-logger](https://trixi.readthedocs.io/en/latest/_api/trixi.logger.html#module-trixi.logger.experiment) for logging your experiments, which uses a file logger to automatically create a structured directory and allows\nstoring of config, results, plots, dict, array, images, etc. That way your experiments will always have the same structure on disk.\n\nHere are some examples:\n\n* [Visdom](https://github.com/facebookresearch/visdom):
\n\"visdom-logger\"\n\n* Files:
\n\"file-logger\"\n\n* Telegram:
\n\"telegram-logger\"\n\n\n### Experiment Infrastructure\n\nThe [Experiment Infrastructure](https://trixi.readthedocs.io/en/latest/_api/trixi.experiment.html) provides a unified way to configure, run, store and evaluate your results.\nIt gives you an experiment interface, for which you can implement the training, validation and testing.\nFurthermore it automatically provides you with easy access to the Logging API and stores your config as well as the\nresults for easy evaluation and reproduction. There is an abstract [Experiment](https://trixi.readthedocs.io/en/latest/_api/trixi.experiment.html#trixi.experiment.experiment.Experiment) class and a [PytorchExperiment](https://trixi.readthedocs.io/en/latest/_api/trixi.experiment.html#trixi.experiment.pytorchexperiment.PytorchExperiment) with many convenience features.\n\n\"exp-train\"\"exp-test\"\n\nFor more info, visit the [Documentation](https://trixi.readthedocs.io/en/latest/_api/trixi.experiment.html).\n\n### Experiment Browser\n\n**(We're currently remaking this from scratch, expect major improvements :))**\n\nThe Experiment Browser offers a complete overview of experiments along with all config parameters and results.\nIt 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,\nplots, results and logs of each experiment, with live plots and more.\n![trixi browser](https://raw.githubusercontent.com/MIC-DKFZ/trixi/master/doc/_static/trixi_browser.gif)\n\n# Installation\n\nInstall **trixi**:\n```\npip install trixi\n```\n\n\nOr to always get the newest version you can install **trixi** directly via git:\n```\ngit clone https://github.com/MIC-DKFZ/trixi.git\ncd trixi\npip install -e .\n```\n\n# Documentation\n\nThe docs can be found here: [trixi.rtfd.io](https://trixi.readthedocs.io/en/latest/)\n\nOr you can build your own docs using Sphinx.\n\n#### Sphinx Setup\n\nInstall Sphinx (fixed to 1.7.0 for now because of issues with Readthedocs): \n`pip install sphinx==1.7.0`\n\nGenerate HTML: \n`path/to/PROJECT/doc$ make html`\n\nindex.html will be at: \n`path/to/PROJECT/doc/_build/html/index.html`\n\n#### Notes\n* Rerun `make html` each time existing modules are updated (this will automatically call sphinx-apidoc)\n* Do not forget indent or blank lines\n* Code with no classes or functions is not automatically captured using apidoc\n\n\n#### Example Documentation\n\nWe use Google style docstrings:\n\n\tdef show_image(self, image, name, file_format=\".png\", **kwargs):\n \"\"\"\n This function shows an image.\n\n Args:\n image(np.ndarray): image to be shown\n name(str): image title\n \"\"\"\n\n\n# Examples\n\nExamples can be found here for:\n* [Visdom-Logger](https://github.com/MIC-DKFZ/trixi/blob/master/examples/numpy_visdom_logger_example.ipynb)\n* [Experiment-Logger](https://github.com/MIC-DKFZ/trixi/blob/master/examples/pytorch_example.ipynb)\n* [Experiment Infrastructure](https://github.com/MIC-DKFZ/trixi/blob/master/examples/pytorch_experiment.ipynb) (with a\n simple MNIST Experiment example and resuming and comparison of different hyperparameters)\n* [U-Net Example](https://github.com/MIC-DKFZ/basic_unet_example)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/MIC-DKFZ/trixi", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "trixi", "package_url": "https://pypi.org/project/trixi/", "platform": "", "project_url": "https://pypi.org/project/trixi/", "project_urls": { "Homepage": "https://github.com/MIC-DKFZ/trixi" }, "release_url": "https://pypi.org/project/trixi/0.1.2.2/", "requires_dist": [ "colorlover (>=0.2.1)", "Flask (>=0.12.2)", "graphviz (>=0.8.4)", "matplotlib (>=2.2.2)", "numpy (>=1.14.5)", "seaborn (>=0.8.1)", "scipy (>=0.19.1)", "imageio (>=2.5.0)", "portalocker (>=1.2.1)", "plotly (>=2.5.1)", "Pillow (>=5.1.0)", "visdom (>=0.1.8.4)", "pathos (>=0.2.0)", "torch (>=1.1.0)", "torchvision (>=0.2.1)", "python-telegram-bot (>=10.1.0)", "umap-learn (>=0.3.6)", "scikit-learn (==0.20.2)", "slackclient (>=1.3.1)", "tb-nightly (==1.14.0a20190523)" ], "requires_python": "", "summary": "Manage your machine learning experiments with trixi - modular, reproducible, high fashion", "version": "0.1.2.2" }, "last_serial": 5400758, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "2ac915dc3242824adcee53bbf3605a49", "sha256": "e9ec78568e8c948b193bc0c0320d75b67bd30ff7c74945aeab959ffadea79fd1" }, "downloads": -1, "filename": "trixi-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2ac915dc3242824adcee53bbf3605a49", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5896, "upload_time": "2018-06-08T08:32:06", "url": "https://files.pythonhosted.org/packages/70/8b/9353f0e42e319d3b45dfe30f71f82fa9e0153af56bc3fc227f89c77fc96d/trixi-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "acf3012453a99933f26520a0c45960a9", "sha256": "01b93f550f8fa353df0280c717a94f4bec8d68a590401c1c4de9b3a5c4159275" }, "downloads": -1, "filename": "trixi-0.1.tar.gz", "has_sig": false, "md5_digest": "acf3012453a99933f26520a0c45960a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4488, "upload_time": "2018-06-08T08:32:07", "url": "https://files.pythonhosted.org/packages/d1/67/7682c6f14c564215cda5298350f4afc8507ee960976d619deb6f60fb8944/trixi-0.1.tar.gz" } ], "0.1.0.1": [ { "comment_text": "", "digests": { "md5": "8a625523e9109495f54c7ee48de63d90", "sha256": "cabbb1aa5a3dedbbe4986b62899ea64c9b59a064b33fbc621da24c6be4f4cdaf" }, "downloads": -1, "filename": "trixi-0.1.0.1.tar.gz", "has_sig": false, "md5_digest": "8a625523e9109495f54c7ee48de63d90", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13043, "upload_time": "2018-11-09T15:33:23", "url": "https://files.pythonhosted.org/packages/f2/51/16b71d511e15a1c39e57112a9d696785bdd354f62f10e77b277ba19c6b86/trixi-0.1.0.1.tar.gz" } ], "0.1.1.1": [ { "comment_text": "", "digests": { "md5": "c4593ccd45b9e7d2b707525b5eb6a04a", "sha256": "29937d9e0f0e8bcf5758fcd7bca332f7ad556df00147874bbe27eb9c955795c6" }, "downloads": -1, "filename": "trixi-0.1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c4593ccd45b9e7d2b707525b5eb6a04a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 84700, "upload_time": "2018-12-02T01:24:20", "url": "https://files.pythonhosted.org/packages/35/03/165fe16ef25b11fb10d03142498c69120486dd9f6e5d092e44763f8a2560/trixi-0.1.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1d71e3b60d266be928a2a6cb5dc639d9", "sha256": "a8b7b07984ec6ed0ffb147895e3ff2071049bcad676d8287573dfe0e5b565dfd" }, "downloads": -1, "filename": "trixi-0.1.1.1.tar.gz", "has_sig": false, "md5_digest": "1d71e3b60d266be928a2a6cb5dc639d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67714, "upload_time": "2018-12-02T01:24:21", "url": "https://files.pythonhosted.org/packages/5f/d9/741fb135f42150e794f4bc1ef5484f7226782c8fb6198c2fbff4d43b9bd3/trixi-0.1.1.1.tar.gz" } ], "0.1.1.4": [ { "comment_text": "", "digests": { "md5": "b85bbaadfd6a98fd2ad0d945e031e7ae", "sha256": "52ba71131931a58fe8d384d5c44ebefa86c84a7544314d0cd08f68007cbd0418" }, "downloads": -1, "filename": "trixi-0.1.1.4.tar.gz", "has_sig": false, "md5_digest": "b85bbaadfd6a98fd2ad0d945e031e7ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70815, "upload_time": "2019-01-18T18:00:23", "url": "https://files.pythonhosted.org/packages/41/06/1e1f2eea80d10b9e98385b4ffa58d4d7f26447e29a7ec66d8ac956a4f16c/trixi-0.1.1.4.tar.gz" } ], "0.1.1.5": [ { "comment_text": "", "digests": { "md5": "f722f56abfb621059e590350f0494df8", "sha256": "89e368291100b9b5fa836aebcf9db7fcd8e278f8c436742f49ba3bdc224c133c" }, "downloads": -1, "filename": "trixi-0.1.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "f722f56abfb621059e590350f0494df8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 89895, "upload_time": "2019-01-18T18:05:57", "url": "https://files.pythonhosted.org/packages/b1/e2/5573c95569acbcd08fbc8a85b15033b9b115294ed7212cb127c13f51d473/trixi-0.1.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9c221f96b727689304dae776fc028e86", "sha256": "f7e720a4f16f3c53a59ec3f8967a2f53613dc0d48840f47c11a83a72d38138ce" }, "downloads": -1, "filename": "trixi-0.1.1.5.tar.gz", "has_sig": false, "md5_digest": "9c221f96b727689304dae776fc028e86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68763, "upload_time": "2019-01-18T18:06:01", "url": "https://files.pythonhosted.org/packages/c0/65/fa4a4831d683a78f3936242f85aa704caab0c1e0953124b30d2f55e3f191/trixi-0.1.1.5.tar.gz" } ], "0.1.1.6": [ { "comment_text": "", "digests": { "md5": "d56ab9c5f7b5b02edaf8b436493f8bfe", "sha256": "5a63dee91b22077b4cd9b7775de9757e8ca328fc149ac339d011405ff9e77ce7" }, "downloads": -1, "filename": "trixi-0.1.1.6.tar.gz", "has_sig": false, "md5_digest": "d56ab9c5f7b5b02edaf8b436493f8bfe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 97732, "upload_time": "2019-01-24T12:35:04", "url": "https://files.pythonhosted.org/packages/d8/47/710a8da6f0876a193f220205745c0b4dbd797217178f00fd656f0a6551b3/trixi-0.1.1.6.tar.gz" } ], "0.1.2.0": [ { "comment_text": "", "digests": { "md5": "38d040ad6cd5895207f1dc475d4e0501", "sha256": "fb6d1a73f2fee698ac353d5a07cd3fbc215b71ce27e7afe3b7c3b31c0eda9837" }, "downloads": -1, "filename": "trixi-0.1.2.0.tar.gz", "has_sig": false, "md5_digest": "38d040ad6cd5895207f1dc475d4e0501", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 106229, "upload_time": "2019-02-15T13:27:44", "url": "https://files.pythonhosted.org/packages/7b/4e/5432873ec597db4d2487622dc96342e9a01f118c79e645e86ee68a02e787/trixi-0.1.2.0.tar.gz" } ], "0.1.2.1": [ { "comment_text": "", "digests": { "md5": "045bc81871bd0905063f9cee690d0e04", "sha256": "c9ab4ef417d8756a8cd02a52d76436eed21a45fd54b2f6343996c16729499c8e" }, "downloads": -1, "filename": "trixi-0.1.2.1.tar.gz", "has_sig": false, "md5_digest": "045bc81871bd0905063f9cee690d0e04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 106245, "upload_time": "2019-02-15T14:11:16", "url": "https://files.pythonhosted.org/packages/9d/ab/343cfc38c8542796c07c4e002631faf68efe741cdbb5e6bba683d6bf34ae/trixi-0.1.2.1.tar.gz" } ], "0.1.2.2": [ { "comment_text": "", "digests": { "md5": "f4d2578cf98ecd5a7d78b0faf3beaa29", "sha256": "566d6534d600dfeb41612f1e506e8a8cefff6c95cfca04beb2655a87b51c09af" }, "downloads": -1, "filename": "trixi-0.1.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f4d2578cf98ecd5a7d78b0faf3beaa29", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 157055, "upload_time": "2019-06-14T14:11:42", "url": "https://files.pythonhosted.org/packages/38/50/60324da19881d450cad6be5eb6627fd5fbe32916b6930c6e4c6f7d81cfc2/trixi-0.1.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "568ba21df96f789f8fa2aaed401fdf21", "sha256": "8d0a05cf2f2b50a19ce184b92a07d1b439d8cdc4e9547250881af9807100521d" }, "downloads": -1, "filename": "trixi-0.1.2.2.tar.gz", "has_sig": false, "md5_digest": "568ba21df96f789f8fa2aaed401fdf21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 128555, "upload_time": "2019-06-14T14:11:44", "url": "https://files.pythonhosted.org/packages/2e/8f/5d7566edad138c7286cb16ba3886f8dbd134805208f85723e32b4b63f90e/trixi-0.1.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f4d2578cf98ecd5a7d78b0faf3beaa29", "sha256": "566d6534d600dfeb41612f1e506e8a8cefff6c95cfca04beb2655a87b51c09af" }, "downloads": -1, "filename": "trixi-0.1.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f4d2578cf98ecd5a7d78b0faf3beaa29", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 157055, "upload_time": "2019-06-14T14:11:42", "url": "https://files.pythonhosted.org/packages/38/50/60324da19881d450cad6be5eb6627fd5fbe32916b6930c6e4c6f7d81cfc2/trixi-0.1.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "568ba21df96f789f8fa2aaed401fdf21", "sha256": "8d0a05cf2f2b50a19ce184b92a07d1b439d8cdc4e9547250881af9807100521d" }, "downloads": -1, "filename": "trixi-0.1.2.2.tar.gz", "has_sig": false, "md5_digest": "568ba21df96f789f8fa2aaed401fdf21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 128555, "upload_time": "2019-06-14T14:11:44", "url": "https://files.pythonhosted.org/packages/2e/8f/5d7566edad138c7286cb16ba3886f8dbd134805208f85723e32b4b63f90e/trixi-0.1.2.2.tar.gz" } ] }