Name | pyinn JSON |
Version |
0.1.8
JSON |
| download |
home_page | None |
Summary | Interpolating Neural Networks |
upload_time | 2025-02-15 00:08:26 |
maintainer | None |
docs_url | None |
author | Chanwook Park |
requires_python | >=3.6 |
license | None |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|

## 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": "\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"
}