Skip to content

Edge naming and Handles Rework #8

@ManjotSingh08x

Description

@ManjotSingh08x

Description

The current edge system does not track naming consistently across multiple edges originating from same handle. Furthermore, complex modules require handles with independent shape_compute functions. This issue covers a revision of edge/handle architecture which makes shape propagation more flexible and generalized.

Tasks

  • Implement consistent edge naming:
    • All edges that originate from the same handle should share a linked name or naming group
    • Edge metadata should indicate: origin handle, target handle, origin node, target node.
  • Create a Handle class:
    • Accepts and optional handle_shape_compute function.
    • Falls back to class default shape_compute when none is provided
    • Alternative implementation could include a HandleSchema of the class which describes the construction of Handles by the CreateLayerComponent factory.
  • Extend shape propagation:
    • Multi-output modules should have multiple handles with independent handle_shape_compute functions.
    • shape computation and verification systems should be adapted to reflect this change.

Expected Outcomes

  • Edges visually and internally show consistent names for handles.
  • for a group of edges originating from the same handle, changing name of one edge, changes the names of other edges instantly.
  • if a multi-output module cannot be found in PyTorch documentation, create a dummy module which simulates this behavior by combining functionalities of 2 other layers (e. g. by passing an image tensor, the node outputs its flattened dimensions as well as its convolutional output.) Demonstrate that all systems can handle this new module
  • Multi-output layers compute shapes correctly for each output handle independently.

Metadata

Metadata

Assignees

Labels

featurenew improvement or additionhigh priorityIssues which need to be completed as soon as possibleoverhaulbig changes to core systems

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions