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

refactor of symbolic.h #41

Closed
Closed
@mli

Description

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

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