pyinn


Namepyinn JSON
Version 0.1.8 PyPI version JSON
download
home_pageNone
SummaryInterpolating Neural Networks
upload_time2025-02-15 00:08:26
maintainerNone
docs_urlNone
authorChanwook Park
requires_python>=3.6
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![INN](/Figure1.png)


## Interpolating Neural Network

This is the github repo for the paper ["Interpolating neural network (INN): A novel unification of machine learning and interpolation theory"](https://arxiv.org/abs/2404.10296).

INN is a lightweight yet precise network architecture that can replace MLPs for data training, partial differential equation (PDE) solving, and parameter calibration. The key features of INNs are:

* Less trainable parameters than MLP without sacrificing accuracy
* Faster and proven convergent behavior
* Fully differntiable and GPU-optimized


## Installation


Clone the repository:

```bash
git clone https://github.com/hachanook/pyinn.git
cd pyinn
```

Create a conda environment:

```bash
conda clean --all # [optional] to clear cache files in the base conda environment
conda env create -f environment.yaml
or
conda install -n base -c conda-forge mamba # [optional] install mamba in the base conda environment
mamba env create -f environment.yaml # this makes installation faster

conda activate pyinn-env
```

Install JAX
- See jax installation [instructions](https://github.com/jax-ml/jax?tab=readme-ov-file#installation). Depending on your hardware, you may install the CPU or GPU version of JAX. Both will work, while GPU version usually gives better performance.
- For CPU only (Linux/macOS/Windows), one can simply install JAX using:
```bash
pip install -U jax
```
- For GPU (NVIDIA, CUDA 12)
```bash
pip install -U "jax[cuda12]"
```
- For TPU (Google Cloud TPU VM)
```bash
pip install -U "jax[tpu]" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html
```

Install Optax (optimization library of JAX)
```bash
pip install optax
```


Then there are two options to continue:

### Option 1

Install the package locally:

```bash

pip install -e .
```

### Option 2

Install the package from the [PyPI release](https://pypi.org/project/pyinn/0.1.0/) directly:

```bash
pip install pyinn
```

### Quick test

```bash
python ./pyinn/main.py
```

## License
This project is licensed under the GNU General Public License v3 - see the [LICENSE](https://www.gnu.org/licenses/) for details.

## Citations
If you found this library useful in academic or industry work, we appreciate your support if you consider 1) starring the project on Github, and 2) citing relevant papers:

```bibtex
@article{park2024engineering,
  title={Engineering software 2.0 by interpolating neural networks: unifying training, solving, and calibration},
  author={Park, Chanwook and Saha, Sourav and Guo, Jiachen and Zhang, Hantao and Xie, Xiaoyu and Bessa, Miguel A and Qian, Dong and Chen, Wei and Wagner, Gregory J and Cao, Jian and others},
  journal={arXiv preprint arXiv:2404.10296},
  year={2024}
}
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pyinn",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": null,
    "author": "Chanwook Park",
    "author_email": "chanwookpark2024@u.northwestern.edu",
    "download_url": "https://files.pythonhosted.org/packages/09/52/891aa7b9cfa3ce16e3c3a0806aa8dde7b6df564e1073cdd1edd478ee0684/pyinn-0.1.8.tar.gz",
    "platform": null,
    "description": "![INN](/Figure1.png)\n\n\n## Interpolating Neural Network\n\nThis is the github repo for the paper [\"Interpolating neural network (INN): A novel unification of machine learning and interpolation theory\"](https://arxiv.org/abs/2404.10296).\n\nINN is a lightweight yet precise network architecture that can replace MLPs for data training, partial differential equation (PDE) solving, and parameter calibration. The key features of INNs are:\n\n* Less trainable parameters than MLP without sacrificing accuracy\n* Faster and proven convergent behavior\n* Fully differntiable and GPU-optimized\n\n\n## Installation\n\n\nClone the repository:\n\n```bash\ngit clone https://github.com/hachanook/pyinn.git\ncd pyinn\n```\n\nCreate a conda environment:\n\n```bash\nconda clean --all # [optional] to clear cache files in the base conda environment\nconda env create -f environment.yaml\nor\nconda install -n base -c conda-forge mamba # [optional] install mamba in the base conda environment\nmamba env create -f environment.yaml # this makes installation faster\n\nconda activate pyinn-env\n```\n\nInstall JAX\n- See jax installation [instructions](https://github.com/jax-ml/jax?tab=readme-ov-file#installation). Depending on your hardware, you may install the CPU or GPU version of JAX. Both will work, while GPU version usually gives better performance.\n- For CPU only (Linux/macOS/Windows), one can simply install JAX using:\n```bash\npip install -U jax\n```\n- For GPU (NVIDIA, CUDA 12)\n```bash\npip install -U \"jax[cuda12]\"\n```\n- For TPU (Google Cloud TPU VM)\n```bash\npip install -U \"jax[tpu]\" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html\n```\n\nInstall Optax (optimization library of JAX)\n```bash\npip install optax\n```\n\n\nThen there are two options to continue:\n\n### Option 1\n\nInstall the package locally:\n\n```bash\n\npip install -e .\n```\n\n### Option 2\n\nInstall the package from the [PyPI release](https://pypi.org/project/pyinn/0.1.0/) directly:\n\n```bash\npip install pyinn\n```\n\n### Quick test\n\n```bash\npython ./pyinn/main.py\n```\n\n## License\nThis project is licensed under the GNU General Public License v3 - see the [LICENSE](https://www.gnu.org/licenses/) for details.\n\n## Citations\nIf you found this library useful in academic or industry work, we appreciate your support if you consider 1) starring the project on Github, and 2) citing relevant papers:\n\n```bibtex\n@article{park2024engineering,\n  title={Engineering software 2.0 by interpolating neural networks: unifying training, solving, and calibration},\n  author={Park, Chanwook and Saha, Sourav and Guo, Jiachen and Zhang, Hantao and Xie, Xiaoyu and Bessa, Miguel A and Qian, Dong and Chen, Wei and Wagner, Gregory J and Cao, Jian and others},\n  journal={arXiv preprint arXiv:2404.10296},\n  year={2024}\n}\n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Interpolating Neural Networks",
    "version": "0.1.8",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4a03753a8225317f6880447b9c6d7a032b0e45e70afa5011c5856876ebb78206",
                "md5": "5159b77757f610d1377ca1bce6bbb2c0",
                "sha256": "41cee9fc03850f19c27e76474c21aaae3efd957b04d49ed7e4bb7ffba47d70fc"
            },
            "downloads": -1,
            "filename": "pyinn-0.1.8-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5159b77757f610d1377ca1bce6bbb2c0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 41507,
            "upload_time": "2025-02-15T00:08:24",
            "upload_time_iso_8601": "2025-02-15T00:08:24.915292Z",
            "url": "https://files.pythonhosted.org/packages/4a/03/753a8225317f6880447b9c6d7a032b0e45e70afa5011c5856876ebb78206/pyinn-0.1.8-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0952891aa7b9cfa3ce16e3c3a0806aa8dde7b6df564e1073cdd1edd478ee0684",
                "md5": "7a207ba2f183999fc23b9861bed23835",
                "sha256": "1f1736fb38679e154db4a1cd4120fb839a157eff9272e7dcb40b2a770cc2fea6"
            },
            "downloads": -1,
            "filename": "pyinn-0.1.8.tar.gz",
            "has_sig": false,
            "md5_digest": "7a207ba2f183999fc23b9861bed23835",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 35994,
            "upload_time": "2025-02-15T00:08:26",
            "upload_time_iso_8601": "2025-02-15T00:08:26.658407Z",
            "url": "https://files.pythonhosted.org/packages/09/52/891aa7b9cfa3ce16e3c3a0806aa8dde7b6df564e1073cdd1edd478ee0684/pyinn-0.1.8.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-15 00:08:26",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "pyinn"
}
        
Elapsed time: 4.66138s