{"id":18852547,"url":"https://github.com/quva-lab/artemis","last_synced_at":"2025-04-05T07:02:11.093Z","repository":{"id":62560028,"uuid":"57375178","full_name":"QUVA-Lab/artemis","owner":"QUVA-Lab","description":"Artemis aims to get rid of all the boring, bureaucratic coding (plotting, file management, organizing experiments, etc) involved in machine learning projects, so you can get to the good stuff quickly.","archived":false,"fork":false,"pushed_at":"2024-03-08T22:54:11.000Z","size":2097,"stargazers_count":238,"open_issues_count":25,"forks_count":30,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-29T06:07:43.180Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QUVA-Lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-29T09:58:50.000Z","updated_at":"2025-02-15T13:31:11.000Z","dependencies_parsed_at":"2024-08-01T15:30:03.406Z","dependency_job_id":"83f0b4a9-ab9a-4f09-a90f-c243326adbad","html_url":"https://github.com/QUVA-Lab/artemis","commit_stats":{"total_commits":730,"total_committers":8,"mean_commits":91.25,"dds":0.2849315068493151,"last_synced_commit":"84d3b1daf0de363cc823d99f978e2861ed400b5b"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QUVA-Lab%2Fartemis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QUVA-Lab%2Fartemis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QUVA-Lab%2Fartemis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QUVA-Lab%2Fartemis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QUVA-Lab","download_url":"https://codeload.github.com/QUVA-Lab/artemis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247299829,"owners_count":20916190,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T03:40:28.724Z","updated_at":"2025-04-05T07:02:11.075Z","avatar_url":"https://github.com/QUVA-Lab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Artemis\n\n ![The deer represents dull, repetitive coding tasks, and Artemis represents Artemis.  As you can see, once Artemis comes along, the future is not bright for dull, repetitive coding tasks.](https://raw.githubusercontent.com/petered/data/master/images/artemis.jpeg)\n\nArtemis is a collection of tools that make it easier to run experiments in Python.  These include:\n\n### A [simple framework for organizing your experiments](http://artemis-ml.readthedocs.io/en/latest/experiments.html) and logging their results (text output and figures) so that they can be reviewed later and replicated easily.\n\ne.g.\n```\nfrom artemis.experiments import experiment_function\n\n@experiment_function  # Decorate your main function to turn it into an Experiment object\ndef multiply_3_numbers(a=1, b=2, c=3):\n    answer = a*b*c\n    print('{} x {} x {} = {}'.format(a, b, c, answer))\n    return answer\n    \nrecord = multiply_3_numbers.run()  # Run experiment and save arguments, console output, and return value to disk\nprint(record.get_log())  # Pring console output of last run      \nprint(record.get_result())  # Print return value of last run\nex = multiply_3_numbers.add_variant(a=4, b=5)  # Make a new experiment with different paremters.\nmultiply_3_numbers.browse()  # Open a UI to browse through all experiments and results.\n```\n\n### A [dbplot function](https://artemis-ml.readthedocs.io/en/latest/plotting.html), for making live \"debug\" plots of numeric data on the fly.\n\ne.g.\n```\nfrom artemis.plotting.db_plotting import dbplot\nimport numpy as np\nfor t in np.linspace(0, 10, 100):\n    dbplot(np.sin(t), 'sin of the times')  # Detects data type and makes appropriate plot\n    dbplot(np.sin(-4*t+np.sin(t/4.)*sum(xi**2 for xi in np.meshgrid(*[np.linspace(-20, 20, 200)]*2))), \"Instaaaaall Arrrteeeemis\")\n```\n(this can also be set up in the browser for [remote live plotting](https://github.com/QUVA-Lab/artemis/blob/master/artemis/remote/README.md))\n\n### Functions for easy download and loading of numerical data.\n\ne.g.\n```\nfrom artemis.plotting.db_plotting import dbplot\nfrom artemis.fileman.smart_io import smart_load\nimg = smart_load('https://cdn.britannica.com/s:700x450/54/13354-004-2F9AE1B2.jpg')  # Detects data type and loads into numpy array\ndbplot(im, 'artemis', hang=True)\n```\n\n### A system for downloading/caching files to a local directory, so the same code can work on different machines.\n\n```\nfrom artemis.fileman.file_getter import get_file\nimport os\nlocal_path = get_file(url = 'https://cdn.britannica.com/s:700x450/54/13354-004-2F9AE1B2.jpg')  # Downloads first time, caches after \nprint('Image \"{}\" has a size of {:.2g}kB'.format(local_path, os.path.getsize(local_path)/1000.))\n```\nFor more examples of how to use artemis, read the [Artemis Documentation](http://artemis-ml.readthedocs.io)\n\n\n## Installation\n\n**As of release 2.0.0 on November 13, 2017, Artemis now supports Python 3**\n\nTo use artemis from within your project, use the following to install Artemis and its dependencies: (You probably want to do this in a virtualenv with the latest version of pip - run `virtualenv venv; source venv/bin/activate; pip install --upgrade pip;` to make one and enter it).\n\n\n**Option 1: Simple install:**\n\n```\npip install artemis-ml\n```\n\n**Option 2: Install as source.**\n\n```\npip install -e git+http://github.com/QUVA-Lab/artemis.git#egg=artemis \n```\nThis will install it in `(virtual env or system python root)/src/artemis`.  You can edit the code and submit pull requests to our git repo.  To install with the optional [remote plotting](https://github.com/QUVA-Lab/artemis/blob/master/artemis/remote/README.md) mode enabled, add the `[remote_plotting]` option, as in: `pip install -e git+http://github.com/QUVA-Lab/artemis.git#egg=artemis[remote_plotting]`\n\n**(Note, this doesn't work if you have Anaconda installed, as it does not work with the `-e` option)**.  Use `pip install artemis-ml` in this case instead.\n\n\n\n**Verifying that it works**\n\nTo verify that the plotting works, run:\n```\npython -m artemis.plotting.demo_dbplot\n```\nA bunch of plots should come up and start updating live. \n\n\n\u003c!--- To verify that the installation worked, go:\n```\ncd venv/src/artemis\npy.test\n```\nAll tests should pass.\n(pytest for some reason cant find modules when you do this alone)---\u003e\nNote: During installation, the settings file `.artemisrc` is created in your home directory. In it you can specify the plotting backend to use, and other settings.\n\nNow that you have Artemis installed, see [this Tutorial](http://artemis-ml.readthedocs.io/en/latest/experiments.html) on how to use Artemis to organize your experiments.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquva-lab%2Fartemis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquva-lab%2Fartemis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquva-lab%2Fartemis/lists"}