Skip to content
This repository was archived by the owner on Nov 17, 2023. It is now read-only.
This repository was archived by the owner on Nov 17, 2023. It is now read-only.

refactor of symbolic.h #41

@mli

Description

@mli

several comments about symbolic.h, please correct me if i'm wrong. our current procedure is

workload(neural network) -- 1 --> expression -- 2 --> dag -- 3 --> results

1. compose by `Symbol`
2. bind with input/context by `Executor`
3. execute by `DAGEngine`

Symbol often means an atomic symbol such as x and y in programming language. So Expression (or Symbolic Expression) is probably a better name here. The static syntax is

Expr e := Var[x] % a single variable x
          list(x_1, ..., x_n) % a list of variables
          op(e_1, ...., e_n) % operator takes several expressions as arguments

the current implementation breaks op(e_1, ...) into Create(op) and Compose. But if we use the above syntax, Create(op) returns an invalid expression since the arguments are not given.

StaticGraph is also not a perfect name. How about BatchExpr? (static/const expression mean the expression can be evaluated at the compile time, but exactly the things we referring here).

Executor doesn't execute, it binds an expression into a dag and then executed by the dag engine. Or we probably use the name Binder.

btw, does heads_ really means outputs_, i have problem to think about the graph direction

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions