tensiometer


Nametensiometer JSON
Version 1.0.2 PyPI version JSON
download
home_pagehttps://tensiometer.readthedocs.io
SummaryTension tools for posterior distributions
upload_time2024-09-29 20:48:23
maintainerNone
docs_urlNone
authorMarco Raveri
requires_python>=3.7
licenseGPL
keywords mcmc
VCS
bugtrack_url
requirements tqdm joblib coverage matplotlib sphinx-rtd-theme GetDist autograd pymanopt gast numba tensorflow tensorflow_probability
Travis-CI No Travis.
coveralls test coverage
            ============
Tensiometer
============
-------------------------------
 Test a model until it breaks!
-------------------------------
:Tensiometer: A tool to test the level of agreement/disagreement between high dimensional posterior distributions.
:Author: Marco Raveri and Cyrille Doux
:Homepage: https://tensiometer.readthedocs.io
:Source: https://github.com/mraveri/tensiometer
:References: `2105.03324 <https://arxiv.org/abs/2105.03324>`_ (non-Gaussian tension metrics), 
             `1806.04649 <https://arxiv.org/abs/1806.04649>`_ and 
             `1912.04880 <https://arxiv.org/abs/1912.04880>`_ (Gaussian tension metrics),
             `2112.05737 <https://arxiv.org/abs/2112.05737>`_ (measured parameters).

.. image:: https://github.com/mraveri/tensiometer/actions/workflows/test.yml/badge.svg
    :target: https://github.com/mraveri/tensiometer/actions/workflows/test.yml
.. image:: https://readthedocs.org/projects/tensiometer/badge/?version=latest
    :target: https://tensiometer.readthedocs.org/en/latest
.. image:: https://coveralls.io/repos/github/mraveri/tensiometer/badge.svg?branch=master
    :target: https://coveralls.io/github/mraveri/tensiometer?branch=master
.. image:: https://img.shields.io/pypi/v/tensiometer.svg?style=flat
    :target: https://pypi.python.org/pypi/tensiometer/

Description
============

The tensiometer package is a collection of tools to help understanding the structure of high 
dimensional posterior distributions. 
In particular it implements a number of metrics to quantify the level of agreement/disagreement
between different distributions.
Some of these methods are based on a `Gaussian approximation <https://arxiv.org/abs/1806.04649>`_.
Others are capable of capturing `non-Gaussian features <https://arxiv.org/abs/2105.03324>`_ of the distributions 
thanks to machine learning techniques.

The best way to get up to speed is to walk through some worked example, based on 
what is needed:

* `Normalizing flow models for posterior distributions <https://tensiometer.readthedocs.org/en/latest/example_synthetic_probability.html>`_;
* `Tension between two Gaussian posteriors <https://tensiometer.readthedocs.org/en/latest/example_gaussian_tension.html>`_;
* `Tension between two non-Gaussian posteriors <https://tensiometer.readthedocs.org/en/latest/example_non_gaussian_tension.html>`_;
* `Posterior profiles <https://tensiometer.readthedocs.org/en/latest/example_posterior_profiles.html>`_;
* `Measured parameters <https://tensiometer.readthedocs.org/en/latest/example_measured_parameters.html>`_;
* `Quantify convergence of chains <https://tensiometer.readthedocs.org/en/latest/example_chains_convergence_test.html>`_;


Installation
=============

The tensiometer package is available on PyPI and can be easily installed with::

  pip install tensiometer

Alternatively one can download the source code from github::

  git clone https://github.com/mraveri/tensiometer.git

and install it locally with the shortcut::

  make install

You can test that the code is working properly by using::

  make test

Dependencies
=============

Tensiometer uses mostly standard python packages.
Notable exceptions are GetDist, Tensorflow and Tensorflow Probability.
Installing the last two is likely painful and we advice to not delegate that to 
automatic dependency resolvers...

For the full list of requirements see the `requirements.txt` file.

Testing the code
================

Tensiometer has a suite of unit tests to make sure everything is properly installed. 
This is especially useful considering that tensiometer relies on a number of external libraries.

To run all tests give the command::

  make test

To run tests and get coverage statistics first make sure that the package `coverage <https://pypi.org/project/coverage/>`_ is installed. 
Then you can use the command::

  make test_with_coverage

As you can see coverage is not complete, pull requests improving test coverage are most welcome.

Documentation
=============

The documentation is automatically built for each release on `readthedocs <https://tensiometer.readthedocs.io/en/latest/>`_.

If you want to build locally the documentation you shoud install `sphinx <https://www.sphinx-doc.org/en/master/usage/installation.html>`_.
Then you can install the readthedocs documentation format with::

  pip install sphinx-rtd-theme

Then you can issue the command::

  make documentation

Acknowledgements
================

We thank Samuel Goldstein, Shivam Pandey for help developing the code.


            

Raw data

            {
    "_id": null,
    "home_page": "https://tensiometer.readthedocs.io",
    "name": "tensiometer",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "MCMC",
    "author": "Marco Raveri",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/a6/63/59f88f65458fdbb7b591f56881acd069ef8c464fefda588409c8272d354b/tensiometer-1.0.2.tar.gz",
    "platform": "any",
    "description": "============\nTensiometer\n============\n-------------------------------\n Test a model until it breaks!\n-------------------------------\n:Tensiometer: A tool to test the level of agreement/disagreement between high dimensional posterior distributions.\n:Author: Marco Raveri and Cyrille Doux\n:Homepage: https://tensiometer.readthedocs.io\n:Source: https://github.com/mraveri/tensiometer\n:References: `2105.03324 <https://arxiv.org/abs/2105.03324>`_ (non-Gaussian tension metrics), \n             `1806.04649 <https://arxiv.org/abs/1806.04649>`_ and \n             `1912.04880 <https://arxiv.org/abs/1912.04880>`_ (Gaussian tension metrics),\n             `2112.05737 <https://arxiv.org/abs/2112.05737>`_ (measured parameters).\n\n.. image:: https://github.com/mraveri/tensiometer/actions/workflows/test.yml/badge.svg\n    :target: https://github.com/mraveri/tensiometer/actions/workflows/test.yml\n.. image:: https://readthedocs.org/projects/tensiometer/badge/?version=latest\n    :target: https://tensiometer.readthedocs.org/en/latest\n.. image:: https://coveralls.io/repos/github/mraveri/tensiometer/badge.svg?branch=master\n    :target: https://coveralls.io/github/mraveri/tensiometer?branch=master\n.. image:: https://img.shields.io/pypi/v/tensiometer.svg?style=flat\n    :target: https://pypi.python.org/pypi/tensiometer/\n\nDescription\n============\n\nThe tensiometer package is a collection of tools to help understanding the structure of high \ndimensional posterior distributions. \nIn particular it implements a number of metrics to quantify the level of agreement/disagreement\nbetween different distributions.\nSome of these methods are based on a `Gaussian approximation <https://arxiv.org/abs/1806.04649>`_.\nOthers are capable of capturing `non-Gaussian features <https://arxiv.org/abs/2105.03324>`_ of the distributions \nthanks to machine learning techniques.\n\nThe best way to get up to speed is to walk through some worked example, based on \nwhat is needed:\n\n* `Normalizing flow models for posterior distributions <https://tensiometer.readthedocs.org/en/latest/example_synthetic_probability.html>`_;\n* `Tension between two Gaussian posteriors <https://tensiometer.readthedocs.org/en/latest/example_gaussian_tension.html>`_;\n* `Tension between two non-Gaussian posteriors <https://tensiometer.readthedocs.org/en/latest/example_non_gaussian_tension.html>`_;\n* `Posterior profiles <https://tensiometer.readthedocs.org/en/latest/example_posterior_profiles.html>`_;\n* `Measured parameters <https://tensiometer.readthedocs.org/en/latest/example_measured_parameters.html>`_;\n* `Quantify convergence of chains <https://tensiometer.readthedocs.org/en/latest/example_chains_convergence_test.html>`_;\n\n\nInstallation\n=============\n\nThe tensiometer package is available on PyPI and can be easily installed with::\n\n  pip install tensiometer\n\nAlternatively one can download the source code from github::\n\n  git clone https://github.com/mraveri/tensiometer.git\n\nand install it locally with the shortcut::\n\n  make install\n\nYou can test that the code is working properly by using::\n\n  make test\n\nDependencies\n=============\n\nTensiometer uses mostly standard python packages.\nNotable exceptions are GetDist, Tensorflow and Tensorflow Probability.\nInstalling the last two is likely painful and we advice to not delegate that to \nautomatic dependency resolvers...\n\nFor the full list of requirements see the `requirements.txt` file.\n\nTesting the code\n================\n\nTensiometer has a suite of unit tests to make sure everything is properly installed. \nThis is especially useful considering that tensiometer relies on a number of external libraries.\n\nTo run all tests give the command::\n\n  make test\n\nTo run tests and get coverage statistics first make sure that the package `coverage <https://pypi.org/project/coverage/>`_ is installed. \nThen you can use the command::\n\n  make test_with_coverage\n\nAs you can see coverage is not complete, pull requests improving test coverage are most welcome.\n\nDocumentation\n=============\n\nThe documentation is automatically built for each release on `readthedocs <https://tensiometer.readthedocs.io/en/latest/>`_.\n\nIf you want to build locally the documentation you shoud install `sphinx <https://www.sphinx-doc.org/en/master/usage/installation.html>`_.\nThen you can install the readthedocs documentation format with::\n\n  pip install sphinx-rtd-theme\n\nThen you can issue the command::\n\n  make documentation\n\nAcknowledgements\n================\n\nWe thank Samuel Goldstein, Shivam Pandey for help developing the code.\n\n",
    "bugtrack_url": null,
    "license": "GPL",
    "summary": "Tension tools for posterior distributions",
    "version": "1.0.2",
    "project_urls": {
        "Homepage": "https://tensiometer.readthedocs.io",
        "Licensing": "https://raw.githubusercontent.com/mraveri/tensiometer/master/LICENSE",
        "Reference": "https://arxiv.org/abs/1806.04649",
        "Source": "https://github.com/mraveri/tensiometer",
        "Tracker": "https://github.com/mraveri/tensiometer/issues"
    },
    "split_keywords": [
        "mcmc"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "80c9bde08614683904b597c1fff5d9607c0b3f2aedd6b4d79364250b04ba120d",
                "md5": "0b4c1b8a91ffd813d40279075a5f59ea",
                "sha256": "fab2dbcd3790c58d4872bf90ada35c2f36b0e412085879e51609a3d76f91ed3d"
            },
            "downloads": -1,
            "filename": "tensiometer-1.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0b4c1b8a91ffd813d40279075a5f59ea",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 116441,
            "upload_time": "2024-09-29T20:48:21",
            "upload_time_iso_8601": "2024-09-29T20:48:21.558832Z",
            "url": "https://files.pythonhosted.org/packages/80/c9/bde08614683904b597c1fff5d9607c0b3f2aedd6b4d79364250b04ba120d/tensiometer-1.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a66359f88f65458fdbb7b591f56881acd069ef8c464fefda588409c8272d354b",
                "md5": "9e68bb4c52dd9f64c73c2848e7b95c5b",
                "sha256": "65928db196f5c9435d851a200a38093de6512e8c7362e2763b4ad8dac164eab8"
            },
            "downloads": -1,
            "filename": "tensiometer-1.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "9e68bb4c52dd9f64c73c2848e7b95c5b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 110058,
            "upload_time": "2024-09-29T20:48:23",
            "upload_time_iso_8601": "2024-09-29T20:48:23.126929Z",
            "url": "https://files.pythonhosted.org/packages/a6/63/59f88f65458fdbb7b591f56881acd069ef8c464fefda588409c8272d354b/tensiometer-1.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-29 20:48:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mraveri",
    "github_project": "tensiometer",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [
        {
            "name": "tqdm",
            "specs": []
        },
        {
            "name": "joblib",
            "specs": []
        },
        {
            "name": "coverage",
            "specs": []
        },
        {
            "name": "matplotlib",
            "specs": []
        },
        {
            "name": "sphinx-rtd-theme",
            "specs": []
        },
        {
            "name": "GetDist",
            "specs": []
        },
        {
            "name": "autograd",
            "specs": []
        },
        {
            "name": "pymanopt",
            "specs": [
                [
                    "==",
                    "0.2.5"
                ]
            ]
        },
        {
            "name": "gast",
            "specs": [
                [
                    "==",
                    "0.4.0"
                ]
            ]
        },
        {
            "name": "numba",
            "specs": [
                [
                    ">=",
                    "0.53.0"
                ]
            ]
        },
        {
            "name": "tensorflow",
            "specs": [
                [
                    ">=",
                    "2.15.0"
                ]
            ]
        },
        {
            "name": "tensorflow_probability",
            "specs": [
                [
                    ">=",
                    "0.23.0"
                ]
            ]
        }
    ],
    "lcname": "tensiometer"
}
        
Elapsed time: 0.33298s