-#Introduction#
+# Introduction #
This package implements a new module nn.DAG which inherits from
nn.Container and allows to combine modules in an arbitrary graph
without cycle.
-##Example##
+## Example ##
A typical use would be:
particularly useful to add anonymous modules which have a single
predecessor and successor.
-#Usage#
+# Usage #
-##Input and output##
+## Input and output ##
The DAG can deal with modules which take as input and produce as
output tensors and nested tables of tensors.
table composed of two tensors, corresponding to the outputs of d and e
respectively.
-##Functions##
+## Functions ##
-###nn.DAG()###
+### nn.DAG() ###
Create a new empty DAG, which inherits from nn.Container.
-###nn.DAG:connect([module1 [, module2 [, ...]]])###
+### nn.DAG:connect([module1 [, module2 [, ...]]]) ###
Add new nodes corresponding to the modules passed as arguments if they
are not already existing. Add edges between every two nodes
Calling it with n > 2 arguments is strictly equivalent to calling it
n-1 times on the pairs of successive arguments.
-###nn.DAG:setInput(i)###
+### nn.DAG:setInput(i) ###
Defines the content and structure of the input. The argument should be
either a module, or a (nested) table of modules. The input to the DAG
should be a (nested) table of inputs, with the corresponding structure.
-###nn.DAG:setOutput(o)###
+### nn.DAG:setOutput(o) ###
Similar to DAG:setInput().
-###nn.DAG:print()###
+### nn.DAG:print() ###
Prints the list of nodes.
-###nn.DAG:saveDot(filename)###
+### nn.DAG:saveDot(filename) ###
Save a dot file to be used by the Graphviz set of tools for graph
visualization. This dot file can than be used for instance to produce