[![PyPI version](https://badge.fury.io/py/pyknos.svg)](https://badge.fury.io/py/pyknos)
[![Contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/mackelab/sbi/blob/master/CONTRIBUTING.md)
[![GitHub license](https://img.shields.io/github/license/mackelab/pyknos)](https://github.com/mackelab/sbi/blob/master/LICENSE.txt)
## Description
Python package for conditional density estimation. It either wraps or
implements diverse conditional density estimators.
### Density estimation with normalizing flows
This package provides pass-through access to all the
functionalities of [nflows](https://github.com/bayesiains/nflows).
## Setup
Clone the repo and install all the dependencies using the
`environment.yml` file to create a conda environment: `conda env
create -f environment.yml`. If you already have a `pyknos` environment
and want to refresh dependencies, just run `conda env update -f
environment.yml --prune`.
Alternatively, you can install via `setup.py` using `pip install -e
".[dev]"` (the dev flag installs development and testing
dependencies).
## Examples
Examples are collected in notebooks in `examples/`.
## Binary files and Jupyter notebooks
### Using
We use git lfs to store large binary files. Those files are not
downloaded by cloning the repository, but you have to pull them
separately. To do so follow installation instructions here
[https://git-lfs.github.com/](https://git-lfs.github.com/). In
particular, in a freshly cloned repository on a new machine, you will
need to run both `git-lfs install` and `git-lfs pull`.
### Contributing
We use a filename filter to identify large binary files. Once you
installed and pulled git lfs you can add a file to git lfs by
appending `_gitlfs` to the basename, e.g., `oldbase_gitlfs.npy`. Then
add the file to the index, commit, and it will be tracked by git lfs.
Additionally, to avoid large diffs due to Jupyter notebook outputs we
are using `nbstripout` to remove output from notebooks before every
commit. The `nbstripout` package is downloaded automatically during
installation of `pyknos`. However, **please make sure to set up the
filter yourself**, e.g., through `nbstriout --install` or with
different options as described
[here](https://github.com/kynan/nbstripout).
## Name
pyknós (πυκνός) is the transliterated Greek root for density
(pyknótita) and also means *sagacious*.
## Copyright notice
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
## Acknowledgements
Thanks to Artur Bekasov, Conor Durkan and George Papamarkarios for
their work on [nflows](https://github.com/bayesiains/nflows).
The MDN implementation in this package is by Conor M. Durkan.
Raw data
{
"_id": null,
"home_page": "https://github.com/mackelab/pyknos",
"name": "pyknos",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6.0",
"maintainer_email": "",
"keywords": "conditional density estimation PyTorch normalizing flows mdn",
"author": "\u00c1lvaro Tejero-Cantero",
"author_email": "alvaro@minin.es",
"download_url": "https://files.pythonhosted.org/packages/5e/e9/e4fda9e17e846ca07d16b5416ca5e77ac94a1249af60b6245f164b3b17db/pyknos-0.15.2.tar.gz",
"platform": null,
"description": "\n[![PyPI version](https://badge.fury.io/py/pyknos.svg)](https://badge.fury.io/py/pyknos)\n[![Contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/mackelab/sbi/blob/master/CONTRIBUTING.md)\n[![GitHub license](https://img.shields.io/github/license/mackelab/pyknos)](https://github.com/mackelab/sbi/blob/master/LICENSE.txt)\n\n## Description\n\nPython package for conditional density estimation. It either wraps or\nimplements diverse conditional density estimators.\n\n### Density estimation with normalizing flows\n\nThis package provides pass-through access to all the\nfunctionalities of [nflows](https://github.com/bayesiains/nflows).\n\n## Setup\n\nClone the repo and install all the dependencies using the\n`environment.yml` file to create a conda environment: `conda env\ncreate -f environment.yml`. If you already have a `pyknos` environment\nand want to refresh dependencies, just run `conda env update -f\nenvironment.yml --prune`.\n\nAlternatively, you can install via `setup.py` using `pip install -e\n\".[dev]\"` (the dev flag installs development and testing\ndependencies).\n\n## Examples\n\nExamples are collected in notebooks in `examples/`.\n\n## Binary files and Jupyter notebooks\n\n### Using\n\nWe use git lfs to store large binary files. Those files are not\ndownloaded by cloning the repository, but you have to pull them\nseparately. To do so follow installation instructions here\n[https://git-lfs.github.com/](https://git-lfs.github.com/). In\nparticular, in a freshly cloned repository on a new machine, you will\nneed to run both `git-lfs install` and `git-lfs pull`.\n\n### Contributing\n\nWe use a filename filter to identify large binary files. Once you\ninstalled and pulled git lfs you can add a file to git lfs by\nappending `_gitlfs` to the basename, e.g., `oldbase_gitlfs.npy`. Then\nadd the file to the index, commit, and it will be tracked by git lfs.\n\nAdditionally, to avoid large diffs due to Jupyter notebook outputs we\nare using `nbstripout` to remove output from notebooks before every\ncommit. The `nbstripout` package is downloaded automatically during\ninstallation of `pyknos`. However, **please make sure to set up the\nfilter yourself**, e.g., through `nbstriout --install` or with\ndifferent options as described\n[here](https://github.com/kynan/nbstripout).\n\n## Name\n\npykn\u00f3s (\u03c0\u03c5\u03ba\u03bd\u03cc\u03c2) is the transliterated Greek root for density\n(pykn\u00f3tita) and also means *sagacious*.\n\n## Copyright notice\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License\nalong with this program. If not, see <https://www.gnu.org/licenses/>.\n\n## Acknowledgements\n\nThanks to Artur Bekasov, Conor Durkan and George Papamarkarios for\ntheir work on [nflows](https://github.com/bayesiains/nflows).\n\nThe MDN implementation in this package is by Conor M. Durkan.\n",
"bugtrack_url": null,
"license": "AGPLv3",
"summary": "Conditional density estimation.",
"version": "0.15.2",
"project_urls": {
"Homepage": "https://github.com/mackelab/pyknos"
},
"split_keywords": [
"conditional",
"density",
"estimation",
"pytorch",
"normalizing",
"flows",
"mdn"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "056bdc3ae5ed4184c81d7b774233d68062168af40bf6119c6a6d19a58b8e1e1e",
"md5": "2801eec41671e8d5800dffb691eae1f4",
"sha256": "cdd9d9c45706fe9fe5ed9991edbc6c728ad6bbfb928d6394fb858864dd7a8158"
},
"downloads": -1,
"filename": "pyknos-0.15.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "2801eec41671e8d5800dffb691eae1f4",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.6.0",
"size": 21326,
"upload_time": "2023-11-30T10:39:21",
"upload_time_iso_8601": "2023-11-30T10:39:21.063059Z",
"url": "https://files.pythonhosted.org/packages/05/6b/dc3ae5ed4184c81d7b774233d68062168af40bf6119c6a6d19a58b8e1e1e/pyknos-0.15.2-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5ee9e4fda9e17e846ca07d16b5416ca5e77ac94a1249af60b6245f164b3b17db",
"md5": "7f3651352e5f84bf158388627e6df209",
"sha256": "ee09ea841858e79ed9f3e104b6654aea676f3403a2f228ef76151e108968caf3"
},
"downloads": -1,
"filename": "pyknos-0.15.2.tar.gz",
"has_sig": false,
"md5_digest": "7f3651352e5f84bf158388627e6df209",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6.0",
"size": 23906,
"upload_time": "2023-11-30T10:39:22",
"upload_time_iso_8601": "2023-11-30T10:39:22.927003Z",
"url": "https://files.pythonhosted.org/packages/5e/e9/e4fda9e17e846ca07d16b5416ca5e77ac94a1249af60b6245f164b3b17db/pyknos-0.15.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-30 10:39:22",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mackelab",
"github_project": "pyknos",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pyknos"
}