{ "info": { "author": "", "author_email": "kandasamy@cs.cmu.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Operating System :: Unix", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: Artificial Intelligence" ], "description": "\n\n---\n\n\nDragonfly is an open source python library for scalable Bayesian optimisation.\n\nBayesian optimisation is used for optimising black-box functions whose evaluations are\nusually expensive. Beyond vanilla optimisation techniques, Dragonfly provides an array of tools to\nscale up Bayesian optimisation to expensive large scale problems.\nThese include features/functionality that are especially suited for\nhigh dimensional optimisation (optimising for a large number of variables),\nparallel evaluations in synchronous or asynchronous settings (conducting multiple\nevaluations in parallel), multi-fidelity optimisation (using cheap approximations\nto speed up the optimisation process), and multi-objective optimisation (optimising\nmultiple functions simultaneously).\n\nDragonfly is compatible with Python2 (>= 2.7) and Python3 (>= 3.5) and has been tested\non Linux, macOS, and Windows platforms.\nFor documentation, installation, and a getting started guide, see our\n[readthedocs page](https://dragonfly-opt.readthedocs.io). For more details, see\nour [paper](https://arxiv.org/abs/1903.06694).\n\n \n\n## Installation\n\nSee \n[here](https://dragonfly-opt.readthedocs.io/en/master/install/)\nfor detailed instructions on installing Dragonfly and its dependencies.\n\n**Quick Installation:**\nIf you have done this kind of thing before, you should be able to install\nDragonfly via `pip`.\n\n```bash\n$ sudo apt-get install python-dev python3-dev gfortran # On Ubuntu/Debian\n$ pip install numpy\n$ pip install dragonfly-opt -v\n```\n\n\n**Testing the Installation**:\nYou can import Dragonfly in python to test if it was installed properly.\nIf you have installed via source, make sure that you move to a different directory \n to avoid naming conflicts.\n```bash\n$ python\n>>> from dragonfly import minimise_function\n>>> # The first argument below is the function, the second is the domain, and the third is the budget.\n>>> min_val, min_pt, history = minimise_function(lambda x: x ** 4 - x**2 + 0.1 * x, [[-10, 10]], 10); \n...\n>>> min_val, min_pt\n(-0.32122746026750953, array([-0.7129672]))\n```\nDue to stochasticity in the algorithms, the above values for `min_val`, `min_pt` may be\ndifferent. If you run it for longer (e.g.\n`min_val, min_pt, history = minimise_function(lambda x: x ** 4 - x**2 + 0.1 * x, [[-10, 10]], 100)`),\nyou should get more consistent values for the minimum. \n\n\nIf the installation fails or if there are warning messages, see detailed instructions\n[here](https://dragonfly-opt.readthedocs.io/en/master/install/).\n\n\n \n\n## Quick Start\n\nDragonfly can be\nused directly in the command line by calling\n[`dragonfly-script.py`](bin/dragonfly-script.py)\nor be imported in python code via the `maximise_function` function in the main library.\nTo help get started, we have provided some examples in the\n[`examples`](examples) directory.\nSee our readthedocs getting started pages\n([command line](https://dragonfly-opt.readthedocs.io/en/master/getting_started_cli/),\n[Python](https://dragonfly-opt.readthedocs.io/en/master/getting_started_py/))\nfor examples and use cases.\n\n**Command line**:\nBelow is an example usage in the command line.\n```bash\n$ cd examples\n$ dragonfly-script.py --config synthetic/branin/config.json --options options_files/options_example.txt\n```\n\n**In Python code**:\nThe main APIs for Dragonfly are defined in\n[`dragonfly/apis`](dragonfly/apis).\nFor their definitions and arguments, see\n[`dragonfly/apis/opt.py`](dragonfly/apis/opt.py) and\n[`dragonfly/apis/moo.py`](dragonfly/apis/moo.py).\nYou can import the main API in python code via,\n```python\nfrom dragonfly import minimise_function, maximise_function\nfunc = lambda x: x ** 4 - x**2 + 0.1 * x\ndomain = [[-10, 10]]\nmax_capital = 100\nmin_val, min_pt, history = minimise_function(func, domain, max_capital)\nprint(min_val, min_pt)\nmax_val, max_pt, history = maximise_function(lambda x: -func(x), domain, max_capital)\nprint(max_val, max_pt)\n```\nHere, `func` is the function to be maximised,\n`domain` is the domain over which `func` is to be optimised,\nand `max_capital` is the capital available for optimisation.\nThe domain can be specified via a JSON file or in code.\nSee\n[here](examples/synthetic/branin/in_code_demo.py),\n[here](examples/synthetic/hartmann6_4/in_code_demo.py),\n[here](examples/synthetic/discrete_euc/in_code_demo_1.py),\n[here](examples/synthetic/discrete_euc/in_code_demo_2.py),\n[here](examples/synthetic/hartmann3_constrained/in_code_demo.py),\n[here](examples/synthetic/park1_constrained/in_code_demo.py),\n[here](examples/synthetic/borehole_constrained/in_code_demo.py),\n[here](examples/synthetic/multiobjective_branin_currinexp/in_code_demo.py),\n[here](examples/synthetic/multiobjective_hartmann/in_code_demo.py),\n[here](examples/tree_reg/in_code_demo.py),\nand\n[here](examples/nas/demo_nas.py)\nfor more detailed examples.\n\n\n\nFor a comprehensive list of uses cases, including multi-objective optimisation,\nmulti-fidelity optimisation, neural architecture search, and other optimisation\nmethods (besides Bayesian optimisation), see our readthe docs pages\n([command line](https://dragonfly-opt.readthedocs.io/en/master/getting_started_cli/),\n[Python](https://dragonfly-opt.readthedocs.io/en/master/getting_started_py/)).\n\n\n \n\n### Contributors\n\nKirthevasan Kandasamy: [github](https://github.com/kirthevasank),\n[webpage](http://www.cs.cmu.edu/~kkandasa/) \nKarun Raju Vysyaraju: [github](https://github.com/karunraju),\n[linkedin](https://www.linkedin.com/in/karunrajuvysyaraju) \nWillie Neiswanger: [github](https://github.com/willieneis),\n[webpage](http://www.cs.cmu.edu/~wdn/) \nBiswajit Paria: [github](https://github.com/biswajitsc),\n[webpage](https://biswajitsc.github.io/) \nChris Collins: [github](https://github.com/crcollins/),\n[webpage](https://www.crcollins.com/)\n\n\n### Acknowledgements\nResearch and development of the methods in this package were funded by\nDOE grant DESC0011114, NSF grant IIS1563887, the DARPA D3M program, and AFRL.\n\n\n### Citation\nIf you use any part of this code in your work, please cite\n[this manuscript](https://arxiv.org/pdf/1903.06694.pdf).\n\n```\n@article{kandasamy2019tuning,\n title={{Tuning Hyperparameters without Grad Students: Scalable and Robust Bayesian\n Optimisation with Dragonfly}},\n author={Kandasamy, Kirthevasan and Vysyaraju, Karun Raju and Neiswanger,\n Willie and Paria, Biswajit and Collins, Christopher R. and Schneider, Jeff and\n Poczos, Barnabas and Xing, Eric P},\n journal={arXiv preprint arXiv:1903.06694},\n year={2019}\n }\n```\n\n### License\nThis software is released under the MIT license. For more details, please refer\n[LICENSE.txt](https://github.com/dragonfly/dragonfly/blob/master/LICENSE.txt).\n\nFor questions, please email kandasamy@cs.cmu.edu.\n\n\"Copyright 2018-2019 Kirthevasan Kandasamy\"", "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/dragonfly/dragonfly/", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "dragonfly-opt", "package_url": "https://pypi.org/project/dragonfly-opt/", "platform": "", "project_url": "https://pypi.org/project/dragonfly-opt/", "project_urls": { "Homepage": "https://github.com/dragonfly/dragonfly/" }, "release_url": "https://pypi.org/project/dragonfly-opt/0.1.4/", "requires_dist": null, "requires_python": "", "summary": "", "version": "0.1.4" }, "last_serial": 5757269, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "1798ecabfc070a2d4ef77b2e61852bad", "sha256": "899784cb63b662806334268c3f142fdfb34a4e4b3823ea2fbadfd29b1b7bdf39" }, "downloads": -1, "filename": "dragonfly-opt-0.0.1.tar.gz", "has_sig": false, "md5_digest": "1798ecabfc070a2d4ef77b2e61852bad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 247801, "upload_time": "2019-02-28T18:49:29", "url": "https://files.pythonhosted.org/packages/c5/5c/285a4627ffc2c6d57e35e991a61eea91998a20bd4c4f544b480eb8401200/dragonfly-opt-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "fadf4546e6d931cb771f50362362911c", "sha256": "9f96a80047982e07ee9297fcf846db2e870f55beecf8c585d7d2eb7d51e26b0f" }, "downloads": -1, "filename": "dragonfly-opt-0.0.2.tar.gz", "has_sig": false, "md5_digest": "fadf4546e6d931cb771f50362362911c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 248804, "upload_time": "2019-02-28T22:10:15", "url": "https://files.pythonhosted.org/packages/75/e3/1a3a9176564fba46b87ec53db12542659ad839c907357480938a3a539b4f/dragonfly-opt-0.0.2.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "7d15332948aebc4df2db428d8cc2ce1c", "sha256": "2c7cbc5908e352f79edd5860a6944676a6d37cfab1e2919017095feb8ec17c46" }, "downloads": -1, "filename": "dragonfly-opt-0.1.0.tar.gz", "has_sig": false, "md5_digest": "7d15332948aebc4df2db428d8cc2ce1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 242572, "upload_time": "2019-03-18T02:50:05", "url": "https://files.pythonhosted.org/packages/1a/ad/70cbb1b5de5b68a70be4f3638f0ef4b6bfdcf409d7116a98446e2b5a0563/dragonfly-opt-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "a368c59e7d1bd5662e313797b9a2f909", "sha256": "32556561bceafb0b876fc324b7a3606e0341c41b3a4826125a187946f7fa0fec" }, "downloads": -1, "filename": "dragonfly-opt-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a368c59e7d1bd5662e313797b9a2f909", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 244179, "upload_time": "2019-04-03T21:46:52", "url": "https://files.pythonhosted.org/packages/2f/3a/8a06d1034cee651d98640add9be5c14df6f4696a9a47928ac01a7174ba71/dragonfly-opt-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "e396abe19adc47348c3287da45ba3939", "sha256": "0d959884116cf59f3f5300823feb7e59b207180419523619469316a8121bba60" }, "downloads": -1, "filename": "dragonfly-opt-0.1.2.tar.gz", "has_sig": false, "md5_digest": "e396abe19adc47348c3287da45ba3939", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 244562, "upload_time": "2019-04-14T20:39:24", "url": "https://files.pythonhosted.org/packages/e4/84/4862e7a30a99227b8d46ab0d31c1c213737682caf76b7db88191ff483824/dragonfly-opt-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "4f4c72cf8a51b802f6fa1546d5cbb455", "sha256": "63dc3a1e18500bb4d30cc196720aea76f15154895701532b79ecbd4bd644858b" }, "downloads": -1, "filename": "dragonfly-opt-0.1.3.tar.gz", "has_sig": false, "md5_digest": "4f4c72cf8a51b802f6fa1546d5cbb455", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 249549, "upload_time": "2019-05-17T13:41:32", "url": "https://files.pythonhosted.org/packages/4e/08/c3b0d863b4c140f84c75a9871fe8866ec7d24374b9ac5c3bc57b32117548/dragonfly-opt-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "cf6e12bdd24cb38393daa0a3e86d8429", "sha256": "788342694e229f07b09fad74bb3367ebc8f21e9db374bf396f9a2278b49d3cf8" }, "downloads": -1, "filename": "dragonfly-opt-0.1.4.tar.gz", "has_sig": false, "md5_digest": "cf6e12bdd24cb38393daa0a3e86d8429", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 248929, "upload_time": "2019-08-29T22:14:13", "url": "https://files.pythonhosted.org/packages/e4/ac/d15d8a83585a8101a4e228a436de323246d59dcb4cda734d2c94b44ed69e/dragonfly-opt-0.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cf6e12bdd24cb38393daa0a3e86d8429", "sha256": "788342694e229f07b09fad74bb3367ebc8f21e9db374bf396f9a2278b49d3cf8" }, "downloads": -1, "filename": "dragonfly-opt-0.1.4.tar.gz", "has_sig": false, "md5_digest": "cf6e12bdd24cb38393daa0a3e86d8429", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 248929, "upload_time": "2019-08-29T22:14:13", "url": "https://files.pythonhosted.org/packages/e4/ac/d15d8a83585a8101a4e228a436de323246d59dcb4cda734d2c94b44ed69e/dragonfly-opt-0.1.4.tar.gz" } ] }