Skip to main content

Package for building Convolutional Neural Networks on images of tensors.

Project description

GINet

doc doc

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

  1. Installation
  2. Features
    1. GeometricImage
    2. MultiImage
  3. Authors and Attribution
  4. License

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-smi and/or nvcc --version.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ginjax-0.1.4.tar.gz (21.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ginjax-0.1.4-py3-none-any.whl (59.8 kB view details)

Uploaded Python 3

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

Hashes for ginjax-0.1.4.tar.gz
Algorithm Hash digest
SHA256 ddb6a92057f2b4f70e44127eb371c9d3b5612c89774b2ed31625ddc59d84bc60
MD5 a16b213479567cef80b0f4500c08ee7c
BLAKE2b-256 37c83b37d84d6f27dcee9b409ab1396c26795c4cb9b144c84c28541f6dc6ebf4

See more details on using hashes here.

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

Hashes for ginjax-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a40c232ebf918b37e16ba3b2040500d9ff32c7639f586ee00021646bb5d05c70
MD5 eb0989c888a2f1c8447a6e17ab04ea2c
BLAKE2b-256 70b735f10af2ad9b7fce041848e8e5667bd7e900ace7beeaa26511f176be0929

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page