Skip to content

Commit

Permalink
Content: Define operand concept, simplify graph connection steps (#591)
Browse files Browse the repository at this point in the history
* Content: Define operand concept, simplify graph connection steps

As discussed in #572:

- Define an "operator" concept, with inputs, outputs, activations.
- Defer "platform operator" and "platform operand" to build.
- Standardize the graph connection steps across builder methods.
- Simplify activation, input and constant steps.

Not covered in this change:

- Erroring if input's [[builder]] doesn't match `this`
- Build algorithm - covered by #448 and #457
- gru() is missing steps to populate output. Added "Issue" note.
- Introducing "Validate arguments" section for each method.
- Introducing "Calculate output shape" section for each method.

For #549 and #572.

* Trivial fixes - missing spaces, wrong operation name

* lstm(): Fix output2 shape calculation

In tip-of-tree, the "desc" MLOperandDescriptor is populated, used,
then modified and conditionally used again (if `returnSequence` is
true) when creating "output2". This was broken in previous commits in
this branch. Restore the intent, using a separate "desc2"
MLOperandDescriptor only conditionally populated and then
conditionally used.

* Update index.bs

Co-authored-by: Ningxin Hu <[email protected]>

* Initial review feedback:

* Add other operand inputs
* PreLU -> PReLU
* Define split() output shapes calculations

* Introduce definition for computational graph with inputs and constants

* Revise Programming Model section

---------

Co-authored-by: Ningxin Hu <[email protected]>
  • Loading branch information
inexorabletash and huningxin authored Mar 12, 2024
1 parent 28c1a6e commit 1d1b531
Showing 1 changed file with 292 additions and 405 deletions.
Loading

0 comments on commit 1d1b531

Please sign in to comment.