ENAS: https://arxiv.org/pdf/1802.03268.pdf PNN: https://arxiv.org/pdf/1706.03256.pdf
Graph would be a nn.Sequential
model that allows for skip connections to be registered
g = Graph(
Conv2D(...)
MaxPool2D(...)
Conv2D(...)
)
#Generates a connector for different layer sizes
g.add_link(g.layers[0], g.layers[2])
#Mutes an input, useful for ENAS
g.toggle_link(g.layers[0], g.layers[2])
Graphs are also expandable, new nodes are added in front.
Node
is a special layer that allows for on-the-fly hyperparam search.
Unlike a layer, it specifies it's in and out dim size and initializes candidate cells to that size.
Connector
is responsible for reshaping and learning identity mappings across layers.
World
implements the game logic and actions available to the ENAS agent.
DagSearchEnv
is the Gym environment.