{ "info": { "author": "Luca Cappelletti", "author_email": "cappelletti.luca94@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3" ], "description": "gaussian_process\n=========================================================================================\n|travis| |sonar_quality| |sonar_maintainability| |codacy| |code_climate_maintainability| |pip| |downloads|\n\nWrapper for `\"sklearn.gp_minimize\"` for a simpler parameter specification using nested dictionaries.\n\nHow do I install this package?\n----------------------------------------------\nAs usual, just download it using pip:\n\n.. code:: shell\n\n pip install gaussian_process\n\nTests Coverage\n----------------------------------------------\nSince some software handling coverages sometime get slightly different results, here's three of them:\n\n|coveralls| |sonar_coverage| |code_climate_coverage|\n\nKeras model optimization using a gaussian process\n-------------------------------------------------------------\n\n.. code:: python\n\n import silence_tensorflow\n from keras.models import Sequential\n from keras.layers import Dense, Dropout\n from keras.datasets import boston_housing\n from extra_keras_utils import set_seed\n from typing import Callable, Dict\n import numpy as np\n from holdouts_generator import holdouts_generator, random_holdouts\n from gaussian_process import TQDMGaussianProcess, Space, GaussianProcess\n\n\n class MLP:\n def __init__(self, holdouts:Callable):\n self._holdouts = holdouts\n \n def mlp(self, dense_layers:Dict, dropout_rate:float)->Sequential:\n return Sequential([\n *[Dense(**kwargs) for kwargs in dense_layers],\n Dropout(dropout_rate),\n Dense(1, activation=\"relu\"),\n ])\n\n def model_score(self, train:np.ndarray, test:np.ndarray, structure:Dict, fit:Dict):\n model = self.mlp(**structure)\n model.compile(\n optimizer=\"nadam\",\n loss=\"mse\"\n )\n\n return model.fit(\n *train,\n epochs=1,\n validation_data=test,\n verbose=0,\n **fit\n ).history[\"val_loss\"][-1]\n\n\n def score(self, structure:Dict, fit:Dict):\n return -np.mean([\n self.model_score(training, test, structure, fit) for (training, test), _ in self._holdouts()\n ])\n\n if __name__ == \"__main__\":\n set_seed(42)\n\n generator = holdouts_generator(\n *boston_housing.load_data()[0],\n holdouts=random_holdouts([0.1], [2])\n )\n\n mlp = MLP(generator)\n\n space = Space({\n \"structure\":{\n \"dense_layers\":[{\n \"units\":(8,16,32),\n \"activation\":(\"relu\", \"selu\")\n },\n {\n \"units\":[8,16,32],\n \"activation\":(\"relu\", \"selu\")\n }],\n \"dropout_rate\":[0.0,1.0]\n },\n \"fit\":{\n \"batch_size\":[100,1000]\n }\n })\n\n gp = GaussianProcess(mlp.score, space)\n \n n_calls = 3\n results = gp.minimize(\n n_calls=n_calls,\n n_random_starts=1,\n callback=[TQDMGaussianProcess(n_calls=n_calls)],\n random_state=42\n )\n results = gp.minimize(\n n_calls=n_calls,\n n_random_starts=1,\n callback=[TQDMGaussianProcess(n_calls=n_calls)],\n random_state=42\n )\n print(gp.best_parameters)\n print(gp.best_optimized_parameters)\n gp.clear_cache()\n\n.. |travis| image:: https://travis-ci.org/LucaCappelletti94/gaussian_process.png\n :target: https://travis-ci.org/LucaCappelletti94/gaussian_process\n :alt: Travis CI build\n\n.. |sonar_quality| image:: https://sonarcloud.io/api/project_badges/measure?project=LucaCappelletti94_gaussian_process&metric=alert_status\n :target: https://sonarcloud.io/dashboard/index/LucaCappelletti94_gaussian_process\n :alt: SonarCloud Quality\n\n.. |sonar_maintainability| image:: https://sonarcloud.io/api/project_badges/measure?project=LucaCappelletti94_gaussian_process&metric=sqale_rating\n :target: https://sonarcloud.io/dashboard/index/LucaCappelletti94_gaussian_process\n :alt: SonarCloud Maintainability\n\n.. |sonar_coverage| image:: https://sonarcloud.io/api/project_badges/measure?project=LucaCappelletti94_gaussian_process&metric=coverage\n :target: https://sonarcloud.io/dashboard/index/LucaCappelletti94_gaussian_process\n :alt: SonarCloud Coverage\n\n.. |coveralls| image:: https://coveralls.io/repos/github/LucaCappelletti94/gaussian_process/badge.svg?branch=master\n :target: https://coveralls.io/github/LucaCappelletti94/gaussian_process?branch=master\n :alt: Coveralls Coverage\n\n.. |pip| image:: https://badge.fury.io/py/gaussian_process.svg\n :target: https://badge.fury.io/py/gaussian_process\n :alt: Pypi project\n\n.. |downloads| image:: https://pepy.tech/badge/gaussian_process\n :target: https://pepy.tech/badge/gaussian_process\n :alt: Pypi total project downloads \n\n.. |codacy| image:: https://api.codacy.com/project/badge/Grade/0a674ed703f44793a27936462ca05080\n :target: https://www.codacy.com/app/LucaCappelletti94/gaussian_process?utm_source=github.com&utm_medium=referral&utm_content=LucaCappelletti94/gaussian_process&utm_campaign=Badge_Grade\n :alt: Codacy Maintainability\n\n.. |code_climate_maintainability| image:: https://api.codeclimate.com/v1/badges/aabe32e918c9ba7cd773/maintainability\n :target: https://codeclimate.com/github/LucaCappelletti94/gaussian_process/maintainability\n :alt: Maintainability\n\n.. |code_climate_coverage| image:: https://api.codeclimate.com/v1/badges/aabe32e918c9ba7cd773/test_coverage\n :target: https://codeclimate.com/github/LucaCappelletti94/gaussian_process/test_coverage\n :alt: Code Climate Coverate", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/LucaCappelletti94/gaussian_process", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "gaussian-process", "package_url": "https://pypi.org/project/gaussian-process/", "platform": "", "project_url": "https://pypi.org/project/gaussian-process/", "project_urls": { "Homepage": "https://github.com/LucaCappelletti94/gaussian_process" }, "release_url": "https://pypi.org/project/gaussian-process/0.0.10/", "requires_dist": null, "requires_python": "", "summary": "Wrapper for sklearn.gp_minimize for a simpler parameter specification using nested dictionaries.", "version": "0.0.10" }, "last_serial": 5349343, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "43ae782039872179343e0c5882da48cd", "sha256": "ae7c55f75fd19efbfc29d711f0a6bcad684dd37ceb7e9ef78a66b265ce7ae366" }, "downloads": -1, "filename": "gaussian_process-0.0.1.tar.gz", "has_sig": false, "md5_digest": "43ae782039872179343e0c5882da48cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5455, "upload_time": "2019-05-26T16:24:13", "url": "https://files.pythonhosted.org/packages/23/7b/7f5cf753694d3f955973f804eb0df64ae30f4edffa75e05d5fa9927940b6/gaussian_process-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "fdcb611cfd55a61e3a9d51bb50655f96", "sha256": "ce68cf2b05643e92bf875283b1e9227d36478020a9a5e7f903f25776fdbc4294" }, "downloads": -1, "filename": "gaussian_process-0.0.10.tar.gz", "has_sig": false, "md5_digest": "fdcb611cfd55a61e3a9d51bb50655f96", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5701, "upload_time": "2019-06-02T16:45:36", "url": "https://files.pythonhosted.org/packages/11/9d/827e7f1a93dfd118ab22992f6d4226f7365d7f8002e50c71ea0d73590dd6/gaussian_process-0.0.10.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "a88e769e3b80491be1ece7ef2d09b767", "sha256": "cd17c7c0af274c78024c2637749aee886d9892244ab4a4c04d67540a2a02fca7" }, "downloads": -1, "filename": "gaussian_process-0.0.3.tar.gz", "has_sig": false, "md5_digest": "a88e769e3b80491be1ece7ef2d09b767", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5550, "upload_time": "2019-05-27T21:09:52", "url": "https://files.pythonhosted.org/packages/19/ca/bff5db8c971bade33aae02aad57c2b9ff544cad52a3cc35289df0ba26eb2/gaussian_process-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "735b78b96e5287539b74d5179b4211d2", "sha256": "ca45fce0d4502a1949531c9c0a6c424abaa6261d2250ea3eb5513d9a49692ce0" }, "downloads": -1, "filename": "gaussian_process-0.0.4.tar.gz", "has_sig": false, "md5_digest": "735b78b96e5287539b74d5179b4211d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5586, "upload_time": "2019-05-29T08:28:15", "url": "https://files.pythonhosted.org/packages/11/82/7619c5b6a5171a060a32717c97dc390b3e74af0e2f2df56a6a2a0ce5ed3e/gaussian_process-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "de2b9cb3f96d161c78bde45337441c29", "sha256": "b6f8700adc8f967dc12a69eea650e1732fb8447a82b1821fbff0bd759c801876" }, "downloads": -1, "filename": "gaussian_process-0.0.5.tar.gz", "has_sig": false, "md5_digest": "de2b9cb3f96d161c78bde45337441c29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5598, "upload_time": "2019-05-31T05:16:45", "url": "https://files.pythonhosted.org/packages/c0/eb/8575f41066ae93f834f66f893d0dca2ab24463bfc74a055f0410de29ae13/gaussian_process-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "97244531c909e9c7ab225dfb3f78a281", "sha256": "f5767da8e76783aea8963ae4a16fd94803b41fc92f25a531c3b12bbf88308876" }, "downloads": -1, "filename": "gaussian_process-0.0.6.tar.gz", "has_sig": false, "md5_digest": "97244531c909e9c7ab225dfb3f78a281", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5642, "upload_time": "2019-05-31T05:20:13", "url": "https://files.pythonhosted.org/packages/22/88/e7e470e3f4c1a1343e2cb9f41bce5f88fb8e4f94a1fb4f1d795961954c0b/gaussian_process-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "a686f0a58f566576b923e7d7be1aa9ba", "sha256": "289254bc47171b5d406ca5be37a17741f8276c9ee596266bad3d2941ba4d6243" }, "downloads": -1, "filename": "gaussian_process-0.0.7.tar.gz", "has_sig": false, "md5_digest": "a686f0a58f566576b923e7d7be1aa9ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5644, "upload_time": "2019-05-31T05:29:50", "url": "https://files.pythonhosted.org/packages/34/ed/64eabf569efe54e35e4494b063ec2a46b72baa2ae2378b3e7cf3dfb372e8/gaussian_process-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "b3d9248a521ae673668f7443c0ac77ed", "sha256": "e18323e13d5f9cc3421d5565579e1447bc1855376a2bab711a79a4cf70c7be27" }, "downloads": -1, "filename": "gaussian_process-0.0.8.tar.gz", "has_sig": false, "md5_digest": "b3d9248a521ae673668f7443c0ac77ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5631, "upload_time": "2019-05-31T15:06:46", "url": "https://files.pythonhosted.org/packages/16/97/b2194bd52931ab1e261ebdf4b4f53ce3aaa7db9199fd1cb7721bc052c40f/gaussian_process-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "3ce895cb1cf21345de71c29333bcb4f7", "sha256": "d6f3afc7d2af7ce3b01d2469fc91ca6cc04e56d221402a08dbfb087ac378f0cd" }, "downloads": -1, "filename": "gaussian_process-0.0.9.tar.gz", "has_sig": false, "md5_digest": "3ce895cb1cf21345de71c29333bcb4f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5644, "upload_time": "2019-06-01T14:50:33", "url": "https://files.pythonhosted.org/packages/8b/0d/4d4e6414cb0bcee7550ae665da7e15d8612ca97d0f77fb3f037e2082499d/gaussian_process-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fdcb611cfd55a61e3a9d51bb50655f96", "sha256": "ce68cf2b05643e92bf875283b1e9227d36478020a9a5e7f903f25776fdbc4294" }, "downloads": -1, "filename": "gaussian_process-0.0.10.tar.gz", "has_sig": false, "md5_digest": "fdcb611cfd55a61e3a9d51bb50655f96", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5701, "upload_time": "2019-06-02T16:45:36", "url": "https://files.pythonhosted.org/packages/11/9d/827e7f1a93dfd118ab22992f6d4226f7365d7f8002e50c71ea0d73590dd6/gaussian_process-0.0.10.tar.gz" } ] }