NaiveNASlib.jl
NaiveNASlib.jl copied to clipboard
Support for flow control
There is currently very limited (at best) support for controlling the program flow (e.g. compute this x-times or compute this if y, else that, neural ODEs etc.).
A possible approach is to implement some kind of "graph in vertex" concept, where the computation of a vertex may consist of one or more graphs (which may in turn be mutated just as any other graph).
Some of the things needed of the top of my head:
- Not too cumbersome way to combine graph(s) and control flow so that graphs are accessible for mutation. -Maybe a struct with graphs and computation (which uses those graphs in an arbitrary way) as separate fields is enough.
- Ability to tie sizes of arbitrary vertices together. -For example, looping the output back as input obviously requires that output size is same as input size. -A use graph1 if x, else graph2 type of vertex also requires that both graph1 and graph2 are aligned with the input/output size of the vertex they are inside.