{ "info": { "author": "Illarion Khlestov", "author_email": "khlyestovillarion@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: Information Analysis", "Topic :: Software Development :: Libraries" ], "description": "===================================================\nMonitoring utility for machine learning experiments\n===================================================\n\n.. image:: https://travis-ci.com/ikhlestov/rarog.svg?branch=master\n :target: https://travis-ci.com/ikhlestov/rarog/\n :alt: Travis status for master branch\n\n.. image:: https://codecov.io/gh/ikhlestov/rarog/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/ikhlestov/rarog/\n :alt: codecov.io status for master branch\n\n.. image:: https://img.shields.io/pypi/pyversions/rarog.svg\n :target: https://pypi.org/project/rarog\n\n\nRarog is a monitoring utility for machine learning experiments. You may use it as a\nlight-weight alternative for `TensorBoard `_\nor `Visdom `_. Rarog stores all records in\n`ClickHouse`_ database using \n`ClickHouse Python Driver `__.\n\nFeatures\n========\n\n- log common python data types(bool, int, float, string, iterables)\n- log 1d numpy arrays\n- distributed experiments monitoring\n\nSetup\n=====\n\nInstall via `pip`_:\n\n.. code-block:: bash\n\n pip install rarog\n\nStart `ClickHouse`_ database if required:\n\n.. code-block:: bash\n\n docker run -d --name clickhouse --ulimit nofile=262144:262144 -p 9000:9000 yandex/clickhouse-server\n\n**Important note:** the example above is just the easiest way. For production, you should\nsetup database backups or replicated.\n\nRarog supports Python 3.4 and newer.\n\nUsage\n===============\n\n.. code:: python3\n\n import random\n \n from rarog import Tracker\n \n tracker = Tracker(name='experiment_name')\n \n # trace values one by one\n for step in range(10):\n tracker.trace(\n name='int_value',\n value=random.randint(10, 20),\n step=step)\n tracker.trace(\n name='float_value',\n value=random.random(),\n step=step)\n # provide experiment phase as a string\n tracker.trace(\n name='list_value',\n value=[random.random(), random.random()],\n step=step,\n phase='val')\n \n # trace values by dict\n for step in range(10, 20):\n tracker.multy_trace({\n 'int_value': random.randint(10, 20),\n 'float_value': random.random()\n }, step=step)\n \n # get names of traced metrics\n tracker.metrics\n # Out: ['time', 'step', 'phase', 'int_value', 'float_value', 'list_value']\n\n\nIf you are going to record more than 100 entries per second,\nit's better to use ``sync_step`` or ``sync_seconds`` arguments.\nThus writing to the database will be done with some period, which is much faster.\n\n.. code:: python3\n\n # `exist_ok` flag allow to use the same name for experiment\n step_tracker = Tracker(name='experiment_name', sync_step=1000, exist_ok=True)\n \n for step in range(20, 10**4):\n step_tracker.trace(name='bool_value', value=bool(random.randint(0, 1)), step=step)\n step_tracker.multy_trace({\n 'int_value': random.randint(10, 20),\n 'float_value': random.random()\n }, step=step)\n \n # tracker should be manually synchronized after last entry\n step_tracker.sync_accumulated_values()\n\nExperiments can be handled via manager\n\n.. code:: python3\n\n from rarog import Manager\n \n manager = Manager()\n manager.list_experiments()\n # Out: ['experiment_name']\n \n manager.remove_experiment('experiment_name')\n\n\n\nRetrieving your data\n====================\n\nTODO (manually and with visualization)\n\n\n.. _ClickHouse: https://clickhouse.yandex\n.. _pip: https://pip.pypa.io/en/stable/quickstart/\n\n\nTODO\n=====\n\n- Pytorch tensors support\n- Support 2d arrays\n- Tensorflow data types support\n- Split Aggregation View for summarization and underlying tables\n- Store experiments metadata(config, author, etc.)\n- Autodocs", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ikhlestov/rarog", "keywords": "", "license": "Apache 2", "maintainer": "Illarion Khlestov", "maintainer_email": "khlyestovillarion@gmail.com", "name": "rarog", "package_url": "https://pypi.org/project/rarog/", "platform": "", "project_url": "https://pypi.org/project/rarog/", "project_urls": { "CI: Travis": "https://travis-ci.com/ikhlestov/rarog/", "Coverage: codecov": "https://codecov.io/gh/ikhlestov/rarog/", "GitHub: repo": "https://github.com/ikhlestov/rarog", "Homepage": "https://github.com/ikhlestov/rarog" }, "release_url": "https://pypi.org/project/rarog/0.1.dev1/", "requires_dist": null, "requires_python": ">=3.4.0", "summary": "Monitoring utility for machine learning experiments", "version": "0.1.dev1" }, "last_serial": 5757442, "releases": { "0.1.dev0": [ { "comment_text": "", "digests": { "md5": "b5da099264da21dc1ad17942282e4464", "sha256": "e2b2625f407ac6a15efbd81b13843a4ef67c24e80b96b915335201a645ed3446" }, "downloads": -1, "filename": "rarog-0.1.dev0.tar.gz", "has_sig": false, "md5_digest": "b5da099264da21dc1ad17942282e4464", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 5643, "upload_time": "2019-08-29T22:34:43", "url": "https://files.pythonhosted.org/packages/14/1e/f786b6aca6aa4ac97d7922a9ca49bb3cbf7622d2383053d0a866b6cebb2b/rarog-0.1.dev0.tar.gz" } ], "0.1.dev1": [ { "comment_text": "", "digests": { "md5": "066c3b7b7ce00613c35b4900096cb46e", "sha256": "71351edd1bd9391172fa86b36c64fab58f67df8e3d1e73940a449de6a24ea473" }, "downloads": -1, "filename": "rarog-0.1.dev1.tar.gz", "has_sig": false, "md5_digest": "066c3b7b7ce00613c35b4900096cb46e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 5909, "upload_time": "2019-08-29T23:10:47", "url": "https://files.pythonhosted.org/packages/05/b3/0e9e69a8aa471c236c4dc4f7db61d400cd218959972abb1f0cd0437df240/rarog-0.1.dev1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "066c3b7b7ce00613c35b4900096cb46e", "sha256": "71351edd1bd9391172fa86b36c64fab58f67df8e3d1e73940a449de6a24ea473" }, "downloads": -1, "filename": "rarog-0.1.dev1.tar.gz", "has_sig": false, "md5_digest": "066c3b7b7ce00613c35b4900096cb46e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 5909, "upload_time": "2019-08-29T23:10:47", "url": "https://files.pythonhosted.org/packages/05/b3/0e9e69a8aa471c236c4dc4f7db61d400cd218959972abb1f0cd0437df240/rarog-0.1.dev1.tar.gz" } ] }