{ "info": { "author": "Torstein Soernes", "author_email": "t.soernes@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# gfsopt\n[![Documentation Status](https://readthedocs.org/projects/gfsopt/badge/?version=latest)](https://gfsopt.readthedocs.io/en/latest/?badge=latest)\n[![Latest Version](https://pypip.in/version/gfsopt/badge.svg)](https://pypi.python.org/pypi/gfsopt/)\n\n`pip3 install --user gfsopt`\n\nConvenient scaffolding for the excellent\n[Global Function Search](http://dlib.net/optimization.html#global_function_search) \nhyperparameter optimizer from the [Dlib](http://dlib.net) library. \n(See: ['A Global Optimization Algorithm Worth Using'](http://blog.dlib.net/2017/12/a-global-optimization-algorithm-worth.html))\n\nProvides the following features:\n* Parallel optimization: Run multiple hyperparameter searches in parallel\n* Save and restore progress: Save/restore settings and optimization progress to/from file. \n* Average over multiple runs: Run a stochastic objective function using the same\nparameters multiple times and report the average to Dlib's Global Function\nSearch. Useful in highly stochastic domains to avoid biasing the search towards\nlucky runs.\n# Example usage\nA basic example where we maximize `obj_func` with respect to `y` over 10 runs,\nwith as many parallel processes as there are logical cores, and save progress to file.\n```\nfrom gfsopt import GFSOptimizer\ndef obj_func(x, y, pid):\n \"\"\"\"Function to be maximized (pid is iteration number)\"\"\"\"\n a = (1.5 - x + x * y)**2\n b = (2.25 - x + x * y * y)**2\n c = (2.625 - x + x * y * y * y)**2\n return -(a + b + c)\n# For this example we pretend that we want to keep 'x' fixed at 0.5\n# while optimizing 'y' in the range -4.5 to 4.5\npp = {'x': 0.5} # Problem parameters\nspace = {'y': [-4.5, 4.5]} # Parameters to optimize over\noptimizer = GFSOptimizer(pp, space, fname=\"test.pkl\")\n# Will sample and test 'y' 10 times, then save results, progress and settings to file\noptimizer.run(obj_func, n_sims=10)\n```\nFor a more extensive example, see \n[example.py](https://github.com/tsoernes/gfsopt/blob/master/example.py).\n\n# Installation & Requirements\nRequires Python >=3.6 and the following libraries:\n```\ndatadiff\ndlib\nnumpy\n```\n\nTo install, do:\n\n`pip3 install --user gfsopt`\n\n# Documentation\nSee [example.py](https://github.com/tsoernes/gfsopt/blob/master/example.py) for\nan example and [http://gfsopt.readthedocs.io/](http://gfsopt.readthedocs.io/)\nfor API documentation.\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/tsoernes/gfsopt", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "gfsopt", "package_url": "https://pypi.org/project/gfsopt/", "platform": "", "project_url": "https://pypi.org/project/gfsopt/", "project_urls": { "Documentation": "http://gfsopt.readthedocs.io/", "Homepage": "https://github.com/tsoernes/gfsopt" }, "release_url": "https://pypi.org/project/gfsopt/1.1.0/", "requires_dist": [ "numpy", "dlib", "datadiff" ], "requires_python": ">=3.6", "summary": "Scaffolding for the Global Function Search optimizer from Dlib", "version": "1.1.0" }, "last_serial": 5196319, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "1c005d1cebe8f64203281302941c4c98", "sha256": "c9ddae0622a1365a4a9ee8b758d04e8f7c8ee32221478723c0d60d44087b682a" }, "downloads": -1, "filename": "gfsopt-1.0.0.tar.gz", "has_sig": false, "md5_digest": "1c005d1cebe8f64203281302941c4c98", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 7251, "upload_time": "2018-06-18T18:28:45", "url": "https://files.pythonhosted.org/packages/72/d8/781c1dcf03c7b7c809e42ccc592d3c120bccedff8b614d2f215799bb5637/gfsopt-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "66603ab60522f7b3eb4bbf4e0456d7e0", "sha256": "14394f62d3f74f8b3a130a39a550dc7b081eedbf268e84fc0f268ef3de68786f" }, "downloads": -1, "filename": "gfsopt-1.0.1.tar.gz", "has_sig": false, "md5_digest": "66603ab60522f7b3eb4bbf4e0456d7e0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 7626, "upload_time": "2018-06-19T18:44:49", "url": "https://files.pythonhosted.org/packages/36/97/611aca5b106b591fa1badffa7f77bcfbd0ae980615900d1994ad0bcf9432/gfsopt-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "7dfc39da97e3cdcaa87d6b583a1f7f5f", "sha256": "7db053cd485de8d31448477c9b3352a243271aefa4e4a3394a8f39be97055ad4" }, "downloads": -1, "filename": "gfsopt-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7dfc39da97e3cdcaa87d6b583a1f7f5f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 13706, "upload_time": "2019-04-27T09:55:28", "url": "https://files.pythonhosted.org/packages/19/e1/eaef8f66dc93600a6319a0c72cb21baa2687b99b840a42b77496216451de/gfsopt-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3f6a442c04ac0b1aa4e0f32f61e2d117", "sha256": "938e77d6b9abf730ede62ebc99559fb13f5080c5700f48a0451809d1f83eee43" }, "downloads": -1, "filename": "gfsopt-1.1.0.tar.gz", "has_sig": false, "md5_digest": "3f6a442c04ac0b1aa4e0f32f61e2d117", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 7689, "upload_time": "2019-04-27T09:57:23", "url": "https://files.pythonhosted.org/packages/03/fe/fc6f0d1d0a20bc35bdbbc0375b1de6c11c67f90e5d0c37fea4d34240e860/gfsopt-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7dfc39da97e3cdcaa87d6b583a1f7f5f", "sha256": "7db053cd485de8d31448477c9b3352a243271aefa4e4a3394a8f39be97055ad4" }, "downloads": -1, "filename": "gfsopt-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7dfc39da97e3cdcaa87d6b583a1f7f5f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 13706, "upload_time": "2019-04-27T09:55:28", "url": "https://files.pythonhosted.org/packages/19/e1/eaef8f66dc93600a6319a0c72cb21baa2687b99b840a42b77496216451de/gfsopt-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3f6a442c04ac0b1aa4e0f32f61e2d117", "sha256": "938e77d6b9abf730ede62ebc99559fb13f5080c5700f48a0451809d1f83eee43" }, "downloads": -1, "filename": "gfsopt-1.1.0.tar.gz", "has_sig": false, "md5_digest": "3f6a442c04ac0b1aa4e0f32f61e2d117", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 7689, "upload_time": "2019-04-27T09:57:23", "url": "https://files.pythonhosted.org/packages/03/fe/fc6f0d1d0a20bc35bdbbc0375b1de6c11c67f90e5d0c37fea4d34240e860/gfsopt-1.1.0.tar.gz" } ] }