cuequivariance

Define custom groups and build segmented tensor products with Clebsch-Gordan coefficients.

420|39|Updated Oct 22, 2024
One-click install
npx skills add https://github.com/NVIDIA/cuEquivariance --skill cuequivariance
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: cuequivariance
Source: https://github.com/NVIDIA/cuEquivariance/tree/main/cuequivariance/cuequivariance
Command: npx skills add https://github.com/NVIDIA/cuEquivariance --skill cuequivariance

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

cuEquivariance provides a framework to define custom groups, construct segmented tensor products with Clebsch-Gordan coefficients, and compose equivariant polynomials using built-in descriptors such as linear, fully_connected_tensor_product, channelwise_tensor_product, and spherical harmonics. This enables researchers and developers to prototype and deploy equivariant neural networks that respect symmetries in 3D data.

Core Features & Use Cases

  • Define custom groups by subclassing cue.Irrep and implementing required methods such as regexp_pattern, from_string, repr, mul, clebsch_gordan, and dimension, enabling custom symmetry handling.
  • Build SegmentedTensorProduct and SegmentedPolynomial from arbitrary subscripts to describe segmented contractions linked by Path objects carrying CG coefficients.
  • Use higher-level descriptors (fully_connected_tensor_product, channelwise_tensor_product, elementwise_tensor_product, linear, spherical_harmonics, symmetric_contraction) to construct EquivariantPolynomial objects for neural networks with SO3/O3/SU2 groups or custom groups.
  • Evaluate and manipulate EquivariantPolynomial and SegmentedPolynomial using a variety of utilities (stacking, fusing, squeezing, canonicalization, and automatic differentiation helpers).

Quick Start

Build a tiny SO3 descriptor with a linear map and evaluate it on dummy inputs.

Frequently Asked Questions about cuequivariance

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build equivariant polynomials for neural networks using group theory?

Equivariant polynomials are built by defining custom groups via irreducible representations and composing built-in descriptors like linear and tensor products with Clebsch-Gordan coefficients to ensure symmetry in 3D data.

Can I define custom groups and symmetries for equivariant neural networks?

Custom groups are defined by subclassing the Irrep class and implementing required methods like regexp_pattern, __mul__, and clebsch_gordan to handle custom symmetry operations within the framework.

What are segmented tensor products and how do they work with Clebsch-Gordan coefficients?

Segmented tensor products describe segmented contractions linked by Path objects carrying Clebsch-Gordan coefficients, allowing you to build SegmentedPolynomial objects for complex equivariant operations.

How do I use built-in descriptors to construct an EquivariantPolynomial?

Built-in descriptors such as fully_connected_tensor_product, channelwise_tensor_product, linear, and spherical_harmonics are applied to construct EquivariantPolynomial objects for SO3, O3, SU2, or custom groups.

Does this framework support automatic differentiation for equivariant polynomials?

Automatic differentiation helpers are provided alongside utilities for stacking, fusing, squeezing, and canonicalization to evaluate and manipulate SegmentedPolynomial and EquivariantPolynomial objects effectively.

What is the best way to prototype an SO3 equivariant neural network component?

Prototyping an SO3 equivariant component involves combining a linear map descriptor with spherical harmonics to construct an EquivariantPolynomial, which can then be evaluated on dummy inputs for validation.