Skip to content

Latest commit

 

History

History
34 lines (26 loc) · 3 KB

README.md

File metadata and controls

34 lines (26 loc) · 3 KB

ddn Package

This document provides a brief description of the modules and utilities within the ddn package. For an overview of deep declarative network concepts and demonstration of using the library see the comprehensive tutorials.

Basic

The ddn.basic package contains standard python code for experimenting with deep declarative nodes. The implementation assumes that all inputs and outputs are vectors (or more complicated data structures have been vectorized).

  • ddn.basic.composition: implements wrapper code for composing nodes in series or parallel (i.e., building a network).
  • ddn.basic.node: defines the interface for data processing nodes and declarative nodes (see tutorial).
  • ddn.basic.robust_nodes: implements nodes for robust pooling.
  • ddn.basic.sample_nodes: provided examples of deep declarative nodes used for testing and in the tutorials.

PyTorch

The ddn.pytorch package includes efficient implementations of deep declarative nodes suitable for including in an end-to-end learnable model. The code builds on the PyTorch framework and conventions.

  • ddn.pytorch.eigen_decomposition: differentiable eigen (spectral) decomposition for real symmetric matrices (see tutorial).
  • ddn.pytorch.geometry_utilities: utility functions for geometry applications.
  • ddn.pytorch.leastsquares: differentiable weighted least-squares nodes (see tutorial and tutorial).
  • ddn.pytorch.node: defines the PyTorch interface for data processing nodes and declarative nodes (see tutorial).
  • ddn.pytorch.pnp_node: differentiable projection-n-point algorithm.
  • ddn.pytorch.optimal_transport: differentiable entropy regularized optimal transport layer (see tutorial).
  • ddn.pytorch.projections: differentiable Euclidean projection layers onto Lp balls and spheres.
  • ddn.pytorch.robustpool: differentiable robust pooling layers treating each dimension independently.
  • ddn.pytorch.robust_vec_pool: differentiable robust vector pooling layers (see tutorial).
  • ddn.pytorch.sample_nodes: simple example implementations of deep declarative nodes for PyTorch.
  • ddn.pytorch.tridiagsolve: differentiable tridiagonal matrix and block tridiagonal solvers (see tutorial)