{ "info": { "author": "EPFL LTS2", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering :: Mathematics" ], "description": "==============================================\nPyUNLocBoX: Optimization by Proximal Splitting\n==============================================\n\n+-------------------------------------------+\n| |doc| |pypi| |license| |pyversions| |\n+-------------------------------------------+\n| |binder| |travis| |coveralls| |github| |\n+-------------------------------------------+\n\n.. |doc| image:: https://readthedocs.org/projects/pyunlocbox/badge/?version=latest\n :target: https://pyunlocbox.readthedocs.io\n.. |pypi| image:: https://img.shields.io/pypi/v/pyunlocbox.svg\n :target: https://pypi.python.org/pypi/pyunlocbox\n.. |license| image:: https://img.shields.io/pypi/l/pyunlocbox.svg\n :target: https://github.com/epfl-lts2/pyunlocbox/blob/master/LICENSE.txt\n.. |pyversions| image:: https://img.shields.io/pypi/pyversions/pyunlocbox.svg\n :target: https://pypi.python.org/pypi/pyunlocbox\n.. |travis| image:: https://img.shields.io/travis/epfl-lts2/pyunlocbox.svg\n :target: https://travis-ci.org/epfl-lts2/pyunlocbox\n.. |coveralls| image:: https://img.shields.io/coveralls/epfl-lts2/pyunlocbox.svg\n :target: https://coveralls.io/github/epfl-lts2/pyunlocbox\n.. |github| image:: https://img.shields.io/github/stars/epfl-lts2/pyunlocbox.svg?style=social\n :target: https://github.com/epfl-lts2/pyunlocbox\n.. |binder| image:: https://mybinder.org/badge.svg\n :target: https://mybinder.org/v2/gh/epfl-lts2/pyunlocbox/master?filepath=playground.ipynb\n\nThe PyUNLocBoX is a Python package which uses\n`proximal splitting methods `_\nto solve non-differentiable convex optimization problems.\nIt is a free software, distributed under the BSD license, and\navailable on `PyPI `_.\nThe documentation is available on\n`Read the Docs `_\nand development takes place on\n`GitHub `_.\n(A `Matlab counterpart `_ exists.)\n\nThe package is designed to be easy to use while allowing any advanced tasks. It\nis not meant to be a black-box optimization tool. You'll have to carefully\ndesign your solver. In exchange you'll get full control of what the package\ndoes for you, without the pain of rewriting the proximity operators and the\nsolvers and with the added benefit of tested algorithms. With this package, you\ncan focus on your problem and the best way to solve it rather that the details\nof the algorithms. It comes with the following solvers:\n\n* Gradient descent\n* Forward-backward splitting algorithm (FISTA, ISTA)\n* Douglas-Rachford splitting algorithm\n* Generalized forward-backward\n* Monotone+Lipschitz forward-backward-forward primal-dual algorithm\n* Projection-based primal-dual algorithm\n\nMoreover, the following acceleration schemes are included:\n\n* FISTA acceleration scheme\n* Backtracking based on a quadratic approximation of the objective\n* Regularized nonlinear acceleration (RNA)\n\nTo compose your objective, you can either define your custom functions (which\nshould implement an evaluation method and a gradient or proximity method) or\nuse one of the followings:\n\n* L1-norm\n* L2-norm\n* TV-norm\n* Nuclear-norm\n* Projection on the L2-ball\n\nFollowing is a typical usage example who solves an optimization problem\ncomposed by the sum of two convex functions. The functions and solver objects\nare first instantiated with the desired parameters. The problem is then solved\nby a call to the solving function.\n\n>>> from pyunlocbox import functions, solvers\n>>> f1 = functions.norm_l2(y=[4, 5, 6, 7])\n>>> f2 = functions.dummy()\n>>> solver = solvers.forward_backward()\n>>> ret = solvers.solve([f1, f2], [0., 0, 0, 0], solver, atol=1e-5)\nSolution found after 9 iterations:\n objective function f(sol) = 6.714385e-08\n stopping criterion: ATOL\n>>> ret['sol']\narray([ 3.99990766, 4.99988458, 5.99986149, 6.99983841])\n\nYou can\n`try it online `_,\nlook at the\n`tutorials `_\nto learn how to use it, or look at the\n`reference guide `_\nfor an exhaustive documentation of the API. Enjoy the package!\n\nInstallation\n------------\n\nThe PyUNLocBoX is available on PyPI::\n\n $ pip install pyunlocbox\n\nContributing\n------------\n\nSee the guidelines for contributing in ``CONTRIBUTING.rst``.\n\nAcknowledgments\n---------------\n\nThe PyUNLocBoX was started in 2014 as an academic open-source project for\nresearch purpose at the `EPFL LTS2 laboratory `_.\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/epfl-lts2/pyunlocbox", "keywords": "convex optimization", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "pyunlocbox", "package_url": "https://pypi.org/project/pyunlocbox/", "platform": "any", "project_url": "https://pypi.org/project/pyunlocbox/", "project_urls": { "Homepage": "https://github.com/epfl-lts2/pyunlocbox" }, "release_url": "https://pypi.org/project/pyunlocbox/0.5.2/", "requires_dist": [ "numpy", "scipy", "matplotlib; extra == 'doc'", "numpydoc; extra == 'doc'", "sphinx; extra == 'doc'", "sphinx-rtd-theme; extra == 'doc'", "sphinxcontrib-bibtex; extra == 'doc'", "twine; extra == 'pkg'", "wheel; extra == 'pkg'", "coverage; extra == 'test'", "coveralls; extra == 'test'", "flake8; extra == 'test'" ], "requires_python": "", "summary": "Convex Optimization in Python using Proximal Splitting", "version": "0.5.2" }, "last_serial": 3419986, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "2275e8a23211007ab9814e798bffba66", "sha256": "cbc78d1042e80b7637068bb8deb7f1ccba4b468eeb95eff54be0d8e7ba612f77" }, "downloads": -1, "filename": "pyunlocbox-0.1.0.tar.gz", "has_sig": false, "md5_digest": "2275e8a23211007ab9814e798bffba66", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14821, "upload_time": "2014-06-08T16:13:38", "url": "https://files.pythonhosted.org/packages/4a/f7/f06c015c64c1400640361e74e2f9a9c895225022de68ba274bfd496d6d64/pyunlocbox-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "855e067f913ed040e2447c7cb266d406", "sha256": "97b881bf103c2668f722ea9c213bd6f0919cc7c6ae466c007a3212489c94ce45" }, "downloads": -1, "filename": "pyunlocbox-0.2.0.tar.gz", "has_sig": false, "md5_digest": "855e067f913ed040e2447c7cb266d406", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18907, "upload_time": "2014-08-04T23:04:24", "url": "https://files.pythonhosted.org/packages/a9/cb/3fd764640986000ee6379d9bdf8e3ea0c87fb5a507825282fd5c91cb9b88/pyunlocbox-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "dd6cae035c0cd08d00f6c13d805d6fd7", "sha256": "78454775829a528943c0e6bfcec9ca1058e268cc0fb79c40ab6490d8556c4614" }, "downloads": -1, "filename": "pyunlocbox-0.2.1.tar.gz", "has_sig": false, "md5_digest": "dd6cae035c0cd08d00f6c13d805d6fd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19009, "upload_time": "2014-08-20T10:12:49", "url": "https://files.pythonhosted.org/packages/a2/41/cee31084d8b58fd610de8b4b94ef2a8343a56a66f6c4772751d2e028f906/pyunlocbox-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "3334afa8fa9c74d446c40760422b4cf0", "sha256": "a8e3fb4ff3ae0a1aa25957745aa10da701aeeef4abdb658ef5aa9f305ba132c6" }, "downloads": -1, "filename": "pyunlocbox-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3334afa8fa9c74d446c40760422b4cf0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 30961, "upload_time": "2017-07-03T15:13:02", "url": "https://files.pythonhosted.org/packages/ca/c2/a2aafdffd5c574ed4555e10fd861f9290beb9f6c8d8a2b67bcf58bc8ba8c/pyunlocbox-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c0f6bdad68b3fbc2453a5e007e32eba7", "sha256": "27193f14e3e4c0dfc4c27f36282f1432ce86409fdd136b052c70be1fa3388f00" }, "downloads": -1, "filename": "pyunlocbox-0.3.0.tar.gz", "has_sig": false, "md5_digest": "c0f6bdad68b3fbc2453a5e007e32eba7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28443, "upload_time": "2017-07-03T15:13:03", "url": "https://files.pythonhosted.org/packages/39/a7/1cf2f3e30ecd8ea67ab0fe4302a9472d35a8a045366f08701cf0848b6f3c/pyunlocbox-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "998e8c6b634b7cddb1c20a925529bf27", "sha256": "b449dfabf70c783d0d68112d14693916ac943cd6abb20a704d53a5f9d73cc15c" }, "downloads": -1, "filename": "pyunlocbox-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "998e8c6b634b7cddb1c20a925529bf27", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 32132, "upload_time": "2017-07-03T15:10:11", "url": "https://files.pythonhosted.org/packages/4b/0a/cc6f5b1c97e84b2d11ade7ffb07988d0d755942dd1eb8c9f1785a30d8f17/pyunlocbox-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "281a20754d4b17defc4df93b84a1a630", "sha256": "61d95dc12da87b4c0aae725dbdb5a4947edfbeaf8515f3f064a211dc810c7bf1" }, "downloads": -1, "filename": "pyunlocbox-0.4.0.tar.gz", "has_sig": false, "md5_digest": "281a20754d4b17defc4df93b84a1a630", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28633, "upload_time": "2017-07-03T15:10:12", "url": "https://files.pythonhosted.org/packages/38/e4/dd19493656be758861cd54de7f42fc3d5513f337fc667d72ff5dad360220/pyunlocbox-0.4.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "f0ef7cdc6011ea6996861e7abd9dbdfa", "sha256": "67bdae4c65c8bd53e7f7b945b112a8d0666781c4e7a3d8cbf7685e3b338aeb68" }, "downloads": -1, "filename": "pyunlocbox-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f0ef7cdc6011ea6996861e7abd9dbdfa", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 42270, "upload_time": "2017-07-04T09:43:01", "url": "https://files.pythonhosted.org/packages/45/32/85ae919066b699c9cb6977a5ec9eed58061b175b6d3d7a0083e022fabbfd/pyunlocbox-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c916aafac7e104203835fb13a4a4cd19", "sha256": "50e6e900fe321e6335a6cf71854156075650068bd75980a33f1ae3b83215f5ca" }, "downloads": -1, "filename": "pyunlocbox-0.5.1.tar.gz", "has_sig": false, "md5_digest": "c916aafac7e104203835fb13a4a4cd19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35344, "upload_time": "2017-07-04T09:43:05", "url": "https://files.pythonhosted.org/packages/d4/73/281f335a12964cd93f798fe0bcd374b0a211c83c883b8219661392db0a50/pyunlocbox-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "901e1e8db3b3523b7921552a6cc99cb7", "sha256": "94a4622d73ff80f2456395234a5c0979bb2a7dbf11adae1ab0c38449b95ae242" }, "downloads": -1, "filename": "pyunlocbox-0.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "901e1e8db3b3523b7921552a6cc99cb7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 41720, "upload_time": "2017-12-15T13:31:00", "url": "https://files.pythonhosted.org/packages/28/20/aa136e2a881b56742f7fadc707c99accf92133dd2d697e4f4fb77e316059/pyunlocbox-0.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8d957ea2d3000c8ea5bc812747241f0f", "sha256": "1b5da78030fde06961acfac1ad2652daed473f5c7cc2c0d9b7845660ef46b4af" }, "downloads": -1, "filename": "pyunlocbox-0.5.2.tar.gz", "has_sig": false, "md5_digest": "8d957ea2d3000c8ea5bc812747241f0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35663, "upload_time": "2017-12-15T13:31:03", "url": "https://files.pythonhosted.org/packages/7c/e4/8d96c6bd7c766c767da9be91badb9263fd2cf4e4a5fe52f7d19ec7579969/pyunlocbox-0.5.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "901e1e8db3b3523b7921552a6cc99cb7", "sha256": "94a4622d73ff80f2456395234a5c0979bb2a7dbf11adae1ab0c38449b95ae242" }, "downloads": -1, "filename": "pyunlocbox-0.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "901e1e8db3b3523b7921552a6cc99cb7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 41720, "upload_time": "2017-12-15T13:31:00", "url": "https://files.pythonhosted.org/packages/28/20/aa136e2a881b56742f7fadc707c99accf92133dd2d697e4f4fb77e316059/pyunlocbox-0.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8d957ea2d3000c8ea5bc812747241f0f", "sha256": "1b5da78030fde06961acfac1ad2652daed473f5c7cc2c0d9b7845660ef46b4af" }, "downloads": -1, "filename": "pyunlocbox-0.5.2.tar.gz", "has_sig": false, "md5_digest": "8d957ea2d3000c8ea5bc812747241f0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35663, "upload_time": "2017-12-15T13:31:03", "url": "https://files.pythonhosted.org/packages/7c/e4/8d96c6bd7c766c767da9be91badb9263fd2cf4e4a5fe52f7d19ec7579969/pyunlocbox-0.5.2.tar.gz" } ] }