From 05b6ab6e2b97f6f8f551907ca92ffa2d12a79b75 Mon Sep 17 00:00:00 2001 From: Francois Fleuret Date: Fri, 13 Jan 2017 08:37:07 +0100 Subject: [PATCH] Now documents the function calls. --- README.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2ff5b99..58c386f 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ +#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: @@ -42,7 +44,7 @@ and run a forward pass with a random batch of 30 samples. Note that DAG:connect allows to add a bunch of edges at once. This is particularly useful to add anonymous modules which have a single predecessor and successor. -#Input and output# +##Input and output## If a node has a single successor, its output is sent unchanged as input to that successor. If it has multiple successors, the outputs are collected into a table, and the table is used as input to the successor node. The indexes of the outputs in that table reflects the order of the DAG:connect() commands. @@ -50,4 +52,46 @@ The expected input (respectively the produced output) is a nested table of input So for instance, in the example above, the model expects a tensor as input, since it is the input to the module a, and its output will is a table composed of two tensors, corresponding to the outputs of d and e respectively. +#Usage# + +##nn.DAG()## + +Create a new empty DAG, which inherits from nn.Container. + +##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 the nodes +corresponding to pairs of successive modules. + +##nn.DAG:setInput(i)## + +Defines the content and structure of the input. The argument should be +either a module, or a (nested) table of module. The input to the DAG +should be a (nested) table of inputs with the corresponding structure. + +##nn.DAG:setOutput(o)## + +Same as DAG:setInput. + +##nn.DAG:print()## + +Prints the list of nodes. + +##nn.DAG:saveDot(filename)## + +Save a dot file to be used by the Graphviz set of tools for graph visualization. + +##nn.DAG:updateOutput(input)## + +See the torch documentation. + +##nn.DAG:updateGradInput(input, gradOutput)## + +See the torch documentation. + +##nn.DAG:accGradParameters(input, gradOutput, scale)## + +See the torch documentation. + *Francois Fleuret, Jan 13th, 2017* -- 2.20.1