Package for building Convolutional Neural Networks on images of tensors.
Project description
GINet
Equivariant geometric convolutions for machine learning on tensor images
This package implements the GeometricImageNet which allows for writing general functions from geometric images to geometric images. Also, with an easy restriction to group invariant CNN filters, we can write CNNs that are equivariant to those groups for geometric images.
See the paper for more details: https://arxiv.org/abs/2305.12585.
See our readthedocs for full documentation.
Table of Contents
Installation
- Install using pip:
pip install ginet. - Alternatively, you can install this repo as an editable install using pip.
- Clone the repository
git clone https://github.com/WilsonGregory/GeometricConvolutions.git - Navigate to the GeometricConvolutions directory
cd GeometricConvolutions - Locally install the package
pip install -e .(may have to use pip3 if your system has both python2 and python3 installed) - In order to run JAX on a GPU, you will likely need to follow some additional steps detailed in https://github.com/google/jax#installation. You will probably need to know your CUDA version, which can be found with
nvidia-smiand/ornvcc --version.
- Clone the repository
Features
GeometricImage
The GeometricImage is the main concept of this package. We define a geometric image for dimension D, spatial dimensions, parity p, and tensor order k. To construct a geometric image, do: image = GeometricImage(data, parity, D). Data is a jnp.array with the shape spatial dimensions followed by (D,)*k).
MultiImage
The MultiImage class allow us to group multiple images together that have the same dimension and spatial dimensions. MultiImage is a dictionary where the keys are (tensor order k, parity p) and the values are a image data block which has some number of initial axes followed by spatial axes and tensor axes. Common numbers of prior axes are 1 for channels, or 2 for batch followed by channels. The machine learning layers and models defined in this package expect a single axis for the channels, while the training code expects batch and then channels. You can easily construct MultiImages from images using the from_images function.
Authors and Attribution
- Wilson Gregory (JHU)
- Kaze W. K. Wong (JHU)
- David W. Hogg (NYU) (MPIA) (Flatiron)
- Soledad Villar (JHU)
If you use this package in your own work, please cite the following:
@misc{gregory2024equivariantgeometricconvolutionsemulation,
title={Equivariant geometric convolutions for emulation of dynamical systems},
author={Wilson G. Gregory and David W. Hogg and Ben Blum-Smith and Maria Teresa Arias and Kaze W. K. Wong and Soledad Villar},
year={2024},
eprint={2305.12585},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2305.12585},
}
License
Copyright 2022 the authors. All text (in .txt and .tex and .bib files) is licensed All rights reserved. All code (everything else) is licensed for use and reuse under the open-source MIT License. See the file LICENSE for more details of that.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ginjax-0.1.4.tar.gz.
File metadata
- Download URL: ginjax-0.1.4.tar.gz
- Upload date:
- Size: 21.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ddb6a92057f2b4f70e44127eb371c9d3b5612c89774b2ed31625ddc59d84bc60
|
|
| MD5 |
a16b213479567cef80b0f4500c08ee7c
|
|
| BLAKE2b-256 |
37c83b37d84d6f27dcee9b409ab1396c26795c4cb9b144c84c28541f6dc6ebf4
|
File details
Details for the file ginjax-0.1.4-py3-none-any.whl.
File metadata
- Download URL: ginjax-0.1.4-py3-none-any.whl
- Upload date:
- Size: 59.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a40c232ebf918b37e16ba3b2040500d9ff32c7639f586ee00021646bb5d05c70
|
|
| MD5 |
eb0989c888a2f1c8447a6e17ab04ea2c
|
|
| BLAKE2b-256 |
70b735f10af2ad9b7fce041848e8e5667bd7e900ace7beeaa26511f176be0929
|