{ "info": { "author": "Stefan Otte", "author_email": "stefan.otte@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: Artificial Intelligence" ], "description": "``LolaML`` - track your ML experiments\n======================================\n\n.. image:: https://readthedocs.org/projects/lolaml/badge/?version=latest\n :target: https://lolaml.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://gitlab.com/stefan-otte/lolaml/badges/master/pipeline.svg\n :target: https://gitlab.com/stefan-otte/lolaml/commits/master\n :alt: Pipeline Status\n\n.. image:: https://gitlab.com/stefan-otte/lolaml/badges/master/coverage.svg\n :target: https://gitlab.com/stefan-otte/lolaml/commits/master\n :alt: Coverage Report\n\n.. image:: https://img.shields.io/pypi/v/lolaml.svg\n :target: https://pypi.org/project/lolaml\n :alt: PyPI Version\n\n.. [![Windows Build Status](https://img.shields.io/appveyor/ci/sotte/lolaml/master.svg?label=window)](https://ci.appveyor.com/project/sotte/lolaml)\n.. [![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/sotte/lolaml.svg)](https://scrutinizer-ci.com/g/sotte/lolaml/?branch=master)\n\nTrack your machine learning experiments with LolaML,\nnever lose any information or forget which parameter yielded which results.\nLola creates a simple JSON representation of the run that contains all the\ninformation you logged.\nThe JSON can easily be shared to collaborate with friends and colleagues.\nLola strives to be non-magic and simple but configurable.\n\n**Features:**\n\n- a simple logging interface\n- a simple JSON representation of the logged data\n- works with any machine learning library\n- automatically creates an artifact folder for each run\n- automatically uploads artifacts to a remote bucket (if you want)\n- simple jupyter notebook dashboard (more to come...)\n\n::\n\n import lolaml as lola\n\n # Use the run context manager to start/end a run\n with lola.Run(project=\"mnist\", prefix_path=\"data/experiments\") as run:\n # a unique id for the run\n print(run.run_id)\n # store all artifacts (model files, images, etc.) here\n print(run.path) # -> data/experiments/mnist/\n\n run.log_param(\"lr\", 0.1)\n run.log_param(\"epochs\", 10)\n\n run.log_tags(\"WIP\", \"RNN\")\n\n # Create and train your model...\n\n run.log_metric(\"loss\", loss, step=1)\n run.log_metric(\"train_acc\", train_acc, step=1)\n run.log_metric(\"val_acc\", val_acc, step=1)\n\n model.save(os.path.join(run.path, \"model.pkl\"))\n\n # After a run there is a lola_run*.json file under run.path.\n # It contails all the information you logged.\n\nAfter the run there is a JSON file that looks something like this::\n\n {\n \"project\": \"mnist\",\n \"run_id\": \"9a531da0-dc43-4dcc-8968-77fd480ff7ee\",\n \"status\": \"done\",\n \"path\": \"data/experiments/mnist/9a531da0-dc43-4dcc-8968-77fd480ff7ee\",\n \"run_file\": \"data/experiments/mnist/9a531da0-dc43-4dcc-8968-77fd480ff7ee/lola_run.json\",\n \"user\": \"stefan\",\n \"start_time\": \"2019-02-16 12:49:32.782958\",\n \"end_time\": \"2019-02-16 12:49:32.814529\",\n \"metrics\": [\n {\n \"name\": \"loss\",\n \"value\": 1.5\n \"step\": 1,\n \"ts\": \"2019-02-16 12:49:32.813750\"\n },\n ...\n ],\n \"params\": {\n \"lr\": \"0.1\",\n \"epochs\": 10,\n },\n \"tags\": [\"WIP\", \"RNN\"],\n \"artifacts\": {\n \"data/experiments/mnist/9a531da0-dc43-4dcc-8968-77fd480ff7ee/lola_run_9a531da0-dc43-4dcc-8968-77fd480ff7ee.json\": {},\n ...\n },\n \"git\": {\n \"sha\": \"41cb4fb11b7e937c602c2282b9275200c88b8797\",\n \"status\": \"...\",\n \"diff\": \"...\",\n },\n \"call_info\": {\n \"cwd\": \"some/where\",\n \"__file__\": \"somefile.py\",\n \"argv\": [],\n }\n }\n\n\nLola can automatically upload all artifacts to a remote storage bucket for you::\n\n with lola.run(\n remote_location=\"gs://somewhere\",\n remote_credentials=\"service_account.json\",\n ) as run:\n # train and log ...\n\n # All artifacts are uploaded now\n\n\nThe remote location can also be configured with the `.lola.toml` file.\n\nAdditionally, Lola offers some helpers to analyse the your experiments:\n\nTODO add image of dashboard\n\nSetup\n=====\n\nRequirements\n------------\n\n* Python 3.6+\n\nInstallation\n------------\n\nInstall this library directly into an activated virtual environment::\n\n $ pip install lolaml\n\nor add it to your `Poetry `_ project::\n\n $ poetry add lolaml\n\nMisc\n====\n\nThis project was generated with `cookiecutter `_\nusing `jacebrowning/template-python `_.\nThanks!\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://pypi.org/project/lolaml", "keywords": "", "license": "", "maintainer": "Stefan Otte", "maintainer_email": "stefan.otte@gmail.com", "name": "lolaml", "package_url": "https://pypi.org/project/lolaml/", "platform": "", "project_url": "https://pypi.org/project/lolaml/", "project_urls": { "Documentation": "https://lolaml.readthedocs.io", "Homepage": "https://pypi.org/project/lolaml", "Repository": "https://gitlab.com/stefan-otte/lolaml/" }, "release_url": "https://pypi.org/project/lolaml/0.0.4/", "requires_dist": [ "click (>=6.0,<7.0)", "minilog (>=0.4,<0.5)", "dataclasses (>=0.6.0,<0.7.0)", "cloudstorage (>=0.9.0,<0.10.0)", "google-cloud-storage (>=1.14,<2.0)", "filelock (>=3.0,<4.0)", "xattr (>=0.9.6,<0.10.0)", "tomlkit (>=0.5.3,<0.6.0)", "itsdangerous (>=1.1,<2.0)" ], "requires_python": ">=3.6,<4.0", "summary": "LolaML - track your ML experiments", "version": "0.0.4" }, "last_serial": 4888259, "releases": { "0.0.2": [ { "comment_text": "", "digests": { "md5": "fe19f42905da4bcf2025f9c1685838a7", "sha256": "d312207e52bfdd9a01b33b17d7b3a3ef68f5824a807af399634e7a74465724d2" }, "downloads": -1, "filename": "lolaml-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "fe19f42905da4bcf2025f9c1685838a7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 28913, "upload_time": "2019-02-17T09:09:01", "url": "https://files.pythonhosted.org/packages/c5/50/80efa62baeca2f0a45f5f28307bb7dee38fb7f64235bb4cc802bff294296/lolaml-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5910b47b2062d1586ebb7b3277a94cba", "sha256": "beddfd860c657a8476a2aa7f6faece600d3f6ffe98526046dc6eb1a95a708cce" }, "downloads": -1, "filename": "lolaml-0.0.2.tar.gz", "has_sig": false, "md5_digest": "5910b47b2062d1586ebb7b3277a94cba", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 13277, "upload_time": "2019-02-17T09:09:04", "url": "https://files.pythonhosted.org/packages/17/29/0f2d2195bb89548c2f5c5c32df1a81bc1f098b9f7541f68dbd40571d7d89/lolaml-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "15f95cd2ea916e5d3d6f02fdd5f5ea4b", "sha256": "31abc0e8a6b8ab759757565c72fb8150b145fc15fd841f4f0e98976abe2980ba" }, "downloads": -1, "filename": "lolaml-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "15f95cd2ea916e5d3d6f02fdd5f5ea4b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 30986, "upload_time": "2019-02-20T14:47:54", "url": "https://files.pythonhosted.org/packages/d8/a5/1af5ea38097433d2b22520f32f1e4319719d007ba213e5325218527d975c/lolaml-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88cb6a2eb7a178784aaa0b31131c7648", "sha256": "5a7a5534342a783e465c04b95440e95e93b0b29a52ec66d88633d6140d09e462" }, "downloads": -1, "filename": "lolaml-0.0.3.tar.gz", "has_sig": false, "md5_digest": "88cb6a2eb7a178784aaa0b31131c7648", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 14084, "upload_time": "2019-02-20T14:47:56", "url": "https://files.pythonhosted.org/packages/f7/66/49e50824addb9e440621bcd993ea4b1a6eef72f738623b6483bedf7f46b9/lolaml-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "86a4176524a1d5d8e9db8d6b253003de", "sha256": "95632de664773cb71f424d8488d095d3beb266837d6db68725e8044ca96722ae" }, "downloads": -1, "filename": "lolaml-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "86a4176524a1d5d8e9db8d6b253003de", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 31673, "upload_time": "2019-03-02T12:53:11", "url": "https://files.pythonhosted.org/packages/9b/ef/d9061cc04bdddf84e697260af3354e48f5b392d6192f981eac8052ca2500/lolaml-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eaac34724bba9827978af86d16176e38", "sha256": "cbeedad5723ad3e0b6f8c0f3619819b2ce7502d77bf545fcc5c4f4bd6555de66" }, "downloads": -1, "filename": "lolaml-0.0.4.tar.gz", "has_sig": false, "md5_digest": "eaac34724bba9827978af86d16176e38", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 14127, "upload_time": "2019-03-02T12:53:13", "url": "https://files.pythonhosted.org/packages/48/ab/b6647bd63f8f6f9d28a38f24e150d355c247c9a5504789a444d1ca3d2dcb/lolaml-0.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "86a4176524a1d5d8e9db8d6b253003de", "sha256": "95632de664773cb71f424d8488d095d3beb266837d6db68725e8044ca96722ae" }, "downloads": -1, "filename": "lolaml-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "86a4176524a1d5d8e9db8d6b253003de", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 31673, "upload_time": "2019-03-02T12:53:11", "url": "https://files.pythonhosted.org/packages/9b/ef/d9061cc04bdddf84e697260af3354e48f5b392d6192f981eac8052ca2500/lolaml-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eaac34724bba9827978af86d16176e38", "sha256": "cbeedad5723ad3e0b6f8c0f3619819b2ce7502d77bf545fcc5c4f4bd6555de66" }, "downloads": -1, "filename": "lolaml-0.0.4.tar.gz", "has_sig": false, "md5_digest": "eaac34724bba9827978af86d16176e38", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 14127, "upload_time": "2019-03-02T12:53:13", "url": "https://files.pythonhosted.org/packages/48/ab/b6647bd63f8f6f9d28a38f24e150d355c247c9a5504789a444d1ca3d2dcb/lolaml-0.0.4.tar.gz" } ] }