ex2mcmc


Nameex2mcmc JSON
Version 0.0.3 PyPI version JSON
download
home_pagehttp://github.com/svsamsonov/ex2mcmc_new
SummaryLocal-Global MCMC kernels: the bost of both worlds (NeurIPS 2022)
upload_time2023-04-20 14:31:47
maintainer
docs_urlNone
authorSergey Samsonov
requires_python>=3.8,<3.9
licenseMIT
keywords mcmc adaptive mcmc gan normalizing flow
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Ex2MCMC: Local-Global MCMC kernels: the bost of both worlds (NeurIPS 2022) [[Paper]](https://proceedings.neurips.cc/paper_files/paper/2022/hash/21c86d5b10cdc28664ccdadf0a29065a-Abstract-Conference.html)

[[ArXiv]](https://arxiv.org/abs/2111.02702)

Authors: Sergey Samsonov, Evgeny Lagutin, Marylou GabriƩ, Alain Durmus, Alexey Naumov, Eric Moulines.

> **Abstract:** *In the present paper we study an Explore-Exploit Markov chain Monte Carlo strategy (Ex2MCMC) that combines local and global samplers showing that it enjoys the advantages of both approaches. We prove V-uniform geometric ergodicity of Ex2MCMC without requiring a uniform adaptation of the global sampler to the target distribution. We also compute explicit bounds on the mixing rate of the Explore-Exploit strategy under realistic conditions. Moreover, we also analyze an adaptive version of the strategy (FlEx2MCMC) where a normalizing flow is trained while sampling to serve as a proposal for global moves. We illustrate the efficiency of Ex2MCMC and its adaptive version on classical sampling benchmarks as well as in sampling high-dimensional distributions defined by Generative Adversarial Networks seen as Energy Based Models.*
> 
<!-- This repository contains Python code to reproduce experiments from [**Local-Global MCMC kernels: the bost of both worlds**](https://proceedings.neurips.cc/paper_files/paper/2022/hash/21c86d5b10cdc28664ccdadf0a29065a-Abstract-Conference.html) (NeurIPS'22). -->


- [Ex2MCMC: Local-Global MCMC kernels: the bost of both worlds (NeurIPS 2022) \[Paper\]](#ex2mcmc-local-global-mcmc-kernels-the-bost-of-both-worlds-neurips-2022-paper)
  - [Single chain mixing](#single-chain-mixing)
  - [Sampling from GAN as Energy-Based Models with MCMC](#sampling-from-gan-as-energy-based-models-with-mcmc)
  - [Algorithms](#algorithms)
  - [Installation](#installation)
  - [Usage](#usage)
    - [Demonstration on SNGAN](#demonstration-on-sngan)
    - [Experiments with synthetic distributions:](#experiments-with-synthetic-distributions)
    - [Experiments with GANs on MNIST dataset](#experiments-with-gans-on-mnist-dataset)
    - [Experiments with GANs on CIFAR10 dataset](#experiments-with-gans-on-cifar10-dataset)
    - [Sampling and FID computation](#sampling-and-fid-computation)
  - [Results](#results)
    - [FID and Inception Score (CIFAR10)](#fid-and-inception-score-cifar10)
    - [Sampling trajectories (CIFAR10)](#sampling-trajectories-cifar10)
    - [Energy landscape approximation (MNIST)](#energy-landscape-approximation-mnist)
  - [Citation](#citation)

## Single chain mixing

<img src="./imgs/gaussian_mixture.png" alt="i-SIR" width="900"/>

## Sampling from GAN as Energy-Based Models with MCMC


<img src="./imgs/fid_flex.png" alt="FID" width="385"/> <img src="./imgs/is_flex.png" alt="Inception Score" width="400"/> 
<!-- <img src="./imgs/energy_flex.png" alt="Energy" width="270"/>  -->


## Algorithms 
<!-- **i-SIR:**

<img src="./algs/isir.png" alt="i-SIR" width="600"/> -->

**Ex<sup>2</sup>MCMC:**

<img src="./imgs/ex2.png" alt="Ex<sup>2</sup>MCMC" width="600"/>

**FlEx<sup>2</sup>MCMC:**

<img src="./imgs/flex.png" alt="FlEx<sup>2</sup>MCMC" width="600"/>

## Installation

Create environment:

```bash
conda create -n ex2mcmc python=3.8
conda activate ex2mcmc
```

Install poetry (if absent):
```bash
curl -sSL https://install.python-poetry.org | python3 -
poetry config virtualenvs.create false
```

Install the project:
```bash
poetry install
```

Download checkpoints:

CIFAR10:

| GAN   |     Steps     |  Path, G |  Path, D |
|:----------|:-------------:|:------:|:------:|
| DCGAN NS  | 100k      |   [netG_100000_steps.pth](https://drive.google.com/file/d/1gv8_qr_xa8hJzdJpBXiKr8v922EqcE-E/view?usp=share_link) |   [netD_100000_steps.pth](https://drive.google.com/file/d/1u1sPUmlvyhcbNDX2DVsR-mGOzqQ6U8sh/view?usp=share_link) |
| SNGAN, Hinge  | 100k      |   [netG.pth](https://drive.google.com/file/d/118zC_iEkN27jGLVNmDuQpMeyw7BKOUra/view?usp=share_link) |   [netD.pth](https://drive.google.com/file/d/1xU5FV59TLhAlkFubJGmJVS87HnZZ2xHT/view?usp=share_link) |

MNIST:

| GAN      |  Path |
|:----------|:-------------:|
| Vanilla  |   [vanilla_gan.pth](https://drive.google.com/file/d/1xa1v4hPQQdU2RkhjMn5sFZCITxTJ5Dhj/view?usp=share_link) |
| WGAN CP  |   [wgan.pth](https://drive.google.com/file/d/17nQJnfs2_T6kyahnkW3fu8AVY54kmRmw/view?usp=share_link) |

You also can run script to download checkpoints:

```bash
chmod +x get_ckpts.sh
./get_ckpts.sh
```

Download statistics for FID cimputation for CIFAR10 dataset:

```bash
mkdir -p stats & gdown 1jjgB_iuvmoVAXPRvVTI_hBfuIz7mQgOg -O stats/fid_stats_cifar10.npz
```

<!-- | WGAN GP   | --        |   [TBD]() |   [TBD]() | -->

## Usage

### Demonstration on SNGAN

Try with colab:  [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1EQQ_OdwCLn5MsOzlG-GS7yNcjTBU-KMp?usp=sharing)

 ### Experiments with synthetic distributions:

FlEx<sup>2</sup>MCMC  vs     NUTS:

<img src="./imgs/flex_mog.png" alt="FlEx<sup>2</sup>MCMC" width="600"/> <img src="./imgs/nuts_mog.png" alt="NUTS" width="425"/>

  
| Experiment | Path | Colab |
|:----------|:-------|:-----:|
| Toyish Gaussian   |     ```experiments/exp_synthetic/toyish_gaussian.ipynb``` | [TBD]() |
| Gaussian mixture  |     ```experiments/exp_synthetic/gaussian_mixture.ipynb``` | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1xmBOZr1YhN8E7Y8GuwjgdM7hqaCgE6ik?usp=sharing) |
| FlEx for banana-shaped distribution   |     ```experiments/exp_synthetic/flex_banana.ipynb``` | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)]() |
| FlEx for Neal's funnel distribution   |     ```experiments/exp_synthetic/flex_funnel.ipynb``` | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)]() |

To reproduce the experimets on banana-shaped and funnel distributions:

```bash
python experiments/exp_synthetic/banana_funnel_metrics.py --distribution {banana,funnel} --device cuda:0
```

 ### Experiments with GANs on MNIST dataset
 
 ```experiments/exp_mnist/JSGAN_samples.ipynb``` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)]()

 ```experiments/exp_mnist/WGAN_samples.ipynb``` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)]()

 ### Experiments with GANs on CIFAR10 dataset

```experiments/exp_cifar10_demo/DCGAN_samples.ipynb``` 

<!-- [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)]() -->

```experiments/exp_cifar10_demo/SNGAN_samples.ipynb``` 

<!-- [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)]() -->

### Sampling and FID computation

```bash
python experiments/exp_cifar10_fid/run.py configs/mcmc_configs/{ula,mala,isir,ex2mcmc,flex2mcmc}.yml configs/mmc_dcgan.yml
```

To run a full experiment:

```bash
chmod +x experiments/exp_cifar10_fid/run.sh & ./experiments/exp_cifar10_fid/run.sh
```

## Results

### FID and Inception Score (CIFAR10)
| GAN | MCMC | Steps | Inception Score | FID  |
|:----|:-----|:------:|:---------------:|:----:|
|DCGAN| none | 0     |       6.3          |  28.4    |
|DCGAN| i-SIR  | 1k     |    6.96          |  22.7    |
|DCGAN| MALA  | 1k      |    6.95           |   23.4   |
|DCGAN| Ex<sup>2</sup>MCMC (our)  | 1k   |    <ins>7.56<ins>          |   <ins>19.0<ins>   |
|DCGAN| FlEx<sup>2</sup>MCMC (our)  | 1k |    **7.92**          |  19.2    |
|DCGAN| FlEx<sup>2</sup>MCMC (our) | 180 |   7.62      |  **17.1**    |


### Sampling trajectories (CIFAR10)
Generation trajectories for DCGAN.

<!-- , top to bottom: ULA, MALA, i-SIR, Ex<sup>2</sup>MCMC, FlEx<sup>2</sup>MCMC: -->

<!-- <img src="./imgs/cifar10_dcgan_gen.png" alt="CIFAR10 generations" width="600"/>  -->

* ULA:

<img src="./imgs/mmc_dcgan_ula.png" alt="CIFAR10 generations with ULA" width="600"/> 

* MALA:

<img src="./imgs/mmc_dcgan_mala.png" alt="CIFAR10 generations with MALA" width="600"/> 

* i-SIR:

<img src="./imgs/mmc_dcgan_isir.png" alt="CIFAR10 generations with i-SIR" width="600"/> 

* Ex<sup>2</sup>MCMC:

<img src="./imgs/mmc_dcgan_ex2mcmc.png" alt="CIFAR10 generations with Ex2MCMC" width="600"/> 

* FlEx<sup>2</sup>MCMC:

<img src="./imgs/mmc_dcgan_flex2mcmc.png" alt="CIFAR10 generations with FlEx2MCMC" width="600"/> 

### Energy landscape approximation (MNIST)

Projection of GAN samples onto the energy landsape when trained on MNIST dataset:

<img src="./imgs/energy_landscape.png" alt="energy landscape" width="600"/> 

## Citation

```bibtex
@article{samsonov2022local,
  title={Local-Global MCMC kernels: the best of both worlds},
  author={Samsonov, Sergey and Lagutin, Evgeny and Gabri{\'e}, Marylou and Durmus, Alain and Naumov, Alexey and Moulines, Eric},
  journal={Advances in Neural Information Processing Systems},
  volume={35},
  pages={5178--5193},
  year={2022}
}
```





            

Raw data

            {
    "_id": null,
    "home_page": "http://github.com/svsamsonov/ex2mcmc_new",
    "name": "ex2mcmc",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8,<3.9",
    "maintainer_email": "",
    "keywords": "mcmc,adaptive mcmc,gan,normalizing flow",
    "author": "Sergey Samsonov",
    "author_email": "svsamsonov@hse.ru",
    "download_url": "https://files.pythonhosted.org/packages/a7/b3/224a5f2826ba0bea77dd7dbe7b5d9c98ab68faa70db4043424159d32aad3/ex2mcmc-0.0.3.tar.gz",
    "platform": null,
    "description": "# Ex2MCMC: Local-Global MCMC kernels: the bost of both worlds (NeurIPS 2022) [[Paper]](https://proceedings.neurips.cc/paper_files/paper/2022/hash/21c86d5b10cdc28664ccdadf0a29065a-Abstract-Conference.html)\n\n[[ArXiv]](https://arxiv.org/abs/2111.02702)\n\nAuthors: Sergey Samsonov, Evgeny Lagutin, Marylou Gabri\u00e9, Alain Durmus, Alexey Naumov, Eric Moulines.\n\n> **Abstract:** *In the present paper we study an Explore-Exploit Markov chain Monte Carlo strategy (Ex2MCMC) that combines local and global samplers showing that it enjoys the advantages of both approaches. We prove V-uniform geometric ergodicity of Ex2MCMC without requiring a uniform adaptation of the global sampler to the target distribution. We also compute explicit bounds on the mixing rate of the Explore-Exploit strategy under realistic conditions. Moreover, we also analyze an adaptive version of the strategy (FlEx2MCMC) where a normalizing flow is trained while sampling to serve as a proposal for global moves. We illustrate the efficiency of Ex2MCMC and its adaptive version on classical sampling benchmarks as well as in sampling high-dimensional distributions defined by Generative Adversarial Networks seen as Energy Based Models.*\n> \n<!-- This repository contains Python code to reproduce experiments from [**Local-Global MCMC kernels: the bost of both worlds**](https://proceedings.neurips.cc/paper_files/paper/2022/hash/21c86d5b10cdc28664ccdadf0a29065a-Abstract-Conference.html) (NeurIPS'22). -->\n\n\n- [Ex2MCMC: Local-Global MCMC kernels: the bost of both worlds (NeurIPS 2022) \\[Paper\\]](#ex2mcmc-local-global-mcmc-kernels-the-bost-of-both-worlds-neurips-2022-paper)\n  - [Single chain mixing](#single-chain-mixing)\n  - [Sampling from GAN as Energy-Based Models with MCMC](#sampling-from-gan-as-energy-based-models-with-mcmc)\n  - [Algorithms](#algorithms)\n  - [Installation](#installation)\n  - [Usage](#usage)\n    - [Demonstration on SNGAN](#demonstration-on-sngan)\n    - [Experiments with synthetic distributions:](#experiments-with-synthetic-distributions)\n    - [Experiments with GANs on MNIST dataset](#experiments-with-gans-on-mnist-dataset)\n    - [Experiments with GANs on CIFAR10 dataset](#experiments-with-gans-on-cifar10-dataset)\n    - [Sampling and FID computation](#sampling-and-fid-computation)\n  - [Results](#results)\n    - [FID and Inception Score (CIFAR10)](#fid-and-inception-score-cifar10)\n    - [Sampling trajectories (CIFAR10)](#sampling-trajectories-cifar10)\n    - [Energy landscape approximation (MNIST)](#energy-landscape-approximation-mnist)\n  - [Citation](#citation)\n\n## Single chain mixing\n\n<img src=\"./imgs/gaussian_mixture.png\" alt=\"i-SIR\" width=\"900\"/>\n\n## Sampling from GAN as Energy-Based Models with MCMC\n\n\n<img src=\"./imgs/fid_flex.png\" alt=\"FID\" width=\"385\"/> <img src=\"./imgs/is_flex.png\" alt=\"Inception Score\" width=\"400\"/> \n<!-- <img src=\"./imgs/energy_flex.png\" alt=\"Energy\" width=\"270\"/>  -->\n\n\n## Algorithms \n<!-- **i-SIR:**\n\n<img src=\"./algs/isir.png\" alt=\"i-SIR\" width=\"600\"/> -->\n\n**Ex<sup>2</sup>MCMC:**\n\n<img src=\"./imgs/ex2.png\" alt=\"Ex<sup>2</sup>MCMC\" width=\"600\"/>\n\n**FlEx<sup>2</sup>MCMC:**\n\n<img src=\"./imgs/flex.png\" alt=\"FlEx<sup>2</sup>MCMC\" width=\"600\"/>\n\n## Installation\n\nCreate environment:\n\n```bash\nconda create -n ex2mcmc python=3.8\nconda activate ex2mcmc\n```\n\nInstall poetry (if absent):\n```bash\ncurl -sSL https://install.python-poetry.org | python3 -\npoetry config virtualenvs.create false\n```\n\nInstall the project:\n```bash\npoetry install\n```\n\nDownload checkpoints:\n\nCIFAR10:\n\n| GAN   |     Steps     |  Path, G |  Path, D |\n|:----------|:-------------:|:------:|:------:|\n| DCGAN NS  | 100k      |   [netG_100000_steps.pth](https://drive.google.com/file/d/1gv8_qr_xa8hJzdJpBXiKr8v922EqcE-E/view?usp=share_link) |   [netD_100000_steps.pth](https://drive.google.com/file/d/1u1sPUmlvyhcbNDX2DVsR-mGOzqQ6U8sh/view?usp=share_link) |\n| SNGAN, Hinge  | 100k      |   [netG.pth](https://drive.google.com/file/d/118zC_iEkN27jGLVNmDuQpMeyw7BKOUra/view?usp=share_link) |   [netD.pth](https://drive.google.com/file/d/1xU5FV59TLhAlkFubJGmJVS87HnZZ2xHT/view?usp=share_link) |\n\nMNIST:\n\n| GAN      |  Path |\n|:----------|:-------------:|\n| Vanilla  |   [vanilla_gan.pth](https://drive.google.com/file/d/1xa1v4hPQQdU2RkhjMn5sFZCITxTJ5Dhj/view?usp=share_link) |\n| WGAN CP  |   [wgan.pth](https://drive.google.com/file/d/17nQJnfs2_T6kyahnkW3fu8AVY54kmRmw/view?usp=share_link) |\n\nYou also can run script to download checkpoints:\n\n```bash\nchmod +x get_ckpts.sh\n./get_ckpts.sh\n```\n\nDownload statistics for FID cimputation for CIFAR10 dataset:\n\n```bash\nmkdir -p stats & gdown 1jjgB_iuvmoVAXPRvVTI_hBfuIz7mQgOg -O stats/fid_stats_cifar10.npz\n```\n\n<!-- | WGAN GP   | --        |   [TBD]() |   [TBD]() | -->\n\n## Usage\n\n### Demonstration on SNGAN\n\nTry with colab:  [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1EQQ_OdwCLn5MsOzlG-GS7yNcjTBU-KMp?usp=sharing)\n\n ### Experiments with synthetic distributions:\n\nFlEx<sup>2</sup>MCMC  vs     NUTS:\n\n<img src=\"./imgs/flex_mog.png\" alt=\"FlEx<sup>2</sup>MCMC\" width=\"600\"/> <img src=\"./imgs/nuts_mog.png\" alt=\"NUTS\" width=\"425\"/>\n\n  \n| Experiment | Path | Colab |\n|:----------|:-------|:-----:|\n| Toyish Gaussian   |     ```experiments/exp_synthetic/toyish_gaussian.ipynb``` | [TBD]() |\n| Gaussian mixture  |     ```experiments/exp_synthetic/gaussian_mixture.ipynb``` | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1xmBOZr1YhN8E7Y8GuwjgdM7hqaCgE6ik?usp=sharing) |\n| FlEx for banana-shaped distribution   |     ```experiments/exp_synthetic/flex_banana.ipynb``` | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)]() |\n| FlEx for Neal's funnel distribution   |     ```experiments/exp_synthetic/flex_funnel.ipynb``` | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)]() |\n\nTo reproduce the experimets on banana-shaped and funnel distributions:\n\n```bash\npython experiments/exp_synthetic/banana_funnel_metrics.py --distribution {banana,funnel} --device cuda:0\n```\n\n ### Experiments with GANs on MNIST dataset\n \n ```experiments/exp_mnist/JSGAN_samples.ipynb``` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)]()\n\n ```experiments/exp_mnist/WGAN_samples.ipynb``` [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)]()\n\n ### Experiments with GANs on CIFAR10 dataset\n\n```experiments/exp_cifar10_demo/DCGAN_samples.ipynb``` \n\n<!-- [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)]() -->\n\n```experiments/exp_cifar10_demo/SNGAN_samples.ipynb``` \n\n<!-- [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)]() -->\n\n### Sampling and FID computation\n\n```bash\npython experiments/exp_cifar10_fid/run.py configs/mcmc_configs/{ula,mala,isir,ex2mcmc,flex2mcmc}.yml configs/mmc_dcgan.yml\n```\n\nTo run a full experiment:\n\n```bash\nchmod +x experiments/exp_cifar10_fid/run.sh & ./experiments/exp_cifar10_fid/run.sh\n```\n\n## Results\n\n### FID and Inception Score (CIFAR10)\n| GAN | MCMC | Steps | Inception Score | FID  |\n|:----|:-----|:------:|:---------------:|:----:|\n|DCGAN| none | 0     |       6.3          |  28.4    |\n|DCGAN| i-SIR  | 1k     |    6.96          |  22.7    |\n|DCGAN| MALA  | 1k      |    6.95           |   23.4   |\n|DCGAN| Ex<sup>2</sup>MCMC (our)  | 1k   |    <ins>7.56<ins>          |   <ins>19.0<ins>   |\n|DCGAN| FlEx<sup>2</sup>MCMC (our)  | 1k |    **7.92**          |  19.2    |\n|DCGAN| FlEx<sup>2</sup>MCMC (our) | 180 |   7.62      |  **17.1**    |\n\n\n### Sampling trajectories (CIFAR10)\nGeneration trajectories for DCGAN.\n\n<!-- , top to bottom: ULA, MALA, i-SIR, Ex<sup>2</sup>MCMC, FlEx<sup>2</sup>MCMC: -->\n\n<!-- <img src=\"./imgs/cifar10_dcgan_gen.png\" alt=\"CIFAR10 generations\" width=\"600\"/>  -->\n\n* ULA:\n\n<img src=\"./imgs/mmc_dcgan_ula.png\" alt=\"CIFAR10 generations with ULA\" width=\"600\"/> \n\n* MALA:\n\n<img src=\"./imgs/mmc_dcgan_mala.png\" alt=\"CIFAR10 generations with MALA\" width=\"600\"/> \n\n* i-SIR:\n\n<img src=\"./imgs/mmc_dcgan_isir.png\" alt=\"CIFAR10 generations with i-SIR\" width=\"600\"/> \n\n* Ex<sup>2</sup>MCMC:\n\n<img src=\"./imgs/mmc_dcgan_ex2mcmc.png\" alt=\"CIFAR10 generations with Ex2MCMC\" width=\"600\"/> \n\n* FlEx<sup>2</sup>MCMC:\n\n<img src=\"./imgs/mmc_dcgan_flex2mcmc.png\" alt=\"CIFAR10 generations with FlEx2MCMC\" width=\"600\"/> \n\n### Energy landscape approximation (MNIST)\n\nProjection of GAN samples onto the energy landsape when trained on MNIST dataset:\n\n<img src=\"./imgs/energy_landscape.png\" alt=\"energy landscape\" width=\"600\"/> \n\n## Citation\n\n```bibtex\n@article{samsonov2022local,\n  title={Local-Global MCMC kernels: the best of both worlds},\n  author={Samsonov, Sergey and Lagutin, Evgeny and Gabri{\\'e}, Marylou and Durmus, Alain and Naumov, Alexey and Moulines, Eric},\n  journal={Advances in Neural Information Processing Systems},\n  volume={35},\n  pages={5178--5193},\n  year={2022}\n}\n```\n\n\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Local-Global MCMC kernels: the bost of both worlds (NeurIPS 2022)",
    "version": "0.0.3",
    "split_keywords": [
        "mcmc",
        "adaptive mcmc",
        "gan",
        "normalizing flow"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "39f403e21ceadda5b64afd506593e285d5419afeb086c470518e39f8a3d159f0",
                "md5": "fb539d47bff92e5baa80d7221229fa6f",
                "sha256": "45a25112b777592b31d2ad84a0a4795599ace0c72644d54552dc144b95910df3"
            },
            "downloads": -1,
            "filename": "ex2mcmc-0.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fb539d47bff92e5baa80d7221229fa6f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8,<3.9",
            "size": 58997,
            "upload_time": "2023-04-20T14:31:45",
            "upload_time_iso_8601": "2023-04-20T14:31:45.367398Z",
            "url": "https://files.pythonhosted.org/packages/39/f4/03e21ceadda5b64afd506593e285d5419afeb086c470518e39f8a3d159f0/ex2mcmc-0.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a7b3224a5f2826ba0bea77dd7dbe7b5d9c98ab68faa70db4043424159d32aad3",
                "md5": "1bb7f85c669283ee8f11a3d88778c48b",
                "sha256": "2fe1bd391c884dd33d90fa41a922ccd53c9b6ecdf23b39ec477d0a34f46f93b3"
            },
            "downloads": -1,
            "filename": "ex2mcmc-0.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "1bb7f85c669283ee8f11a3d88778c48b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8,<3.9",
            "size": 53250,
            "upload_time": "2023-04-20T14:31:47",
            "upload_time_iso_8601": "2023-04-20T14:31:47.337690Z",
            "url": "https://files.pythonhosted.org/packages/a7/b3/224a5f2826ba0bea77dd7dbe7b5d9c98ab68faa70db4043424159d32aad3/ex2mcmc-0.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-04-20 14:31:47",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "svsamsonov",
    "github_project": "ex2mcmc_new",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "ex2mcmc"
}
        
Elapsed time: 0.05776s