nn.combinators.Sequential

class nn.combinators.Sequential(*args, **kwargs)[source]

Bases:

Build a sequential stack of modules by connecting them end-to-end

Sequential accepts any number of modules. The shapes of the modules must be compatible – the output size size_out of each module must match the input size size_in of the following module.

When provided with a list of modules, Sequential will assign module names automatically to each module. If you would like more control over module names, you can provide an OrderedDict to construct the network. In that case, dictionary keys will be used as module names.

You can also append additional modules to a network with the Sequential.append() method. Module names can optionally be provided in this case as well.

Examples

Build a Sequential stack will be returned a Module, containing mod0, mod1 and mod2. When evolving this stack, signals will be passed through mod0, then mod1, then mod2:

>>> Sequential(mod0, mod1, mod2)

Index into a Sequential stack using Python indexing:

>>> mod = Sequential(mod0, mod1, mod2)
>>> mod[0]
A module with shape (xx, xx)

Build a Sequential stack from an OrderedDict:

>>> od = OrderedDict([('mod0', mod0), ('mod1', mod1)])
>>> seq = Sequential(od)

Build an empty Sequential, and use Sequential.append():

>>> seq = Sequential()
>>> seq.append(mod0)
>>> seq.append(mod1, 'mod1)
Parameters:

*mods – Any number of modules to connect. The size_out attribute of one module must match the size_in attribute of the following module.

Returns:

A Module subclass object that encapsulates the provided modules

__init__ = <method-wrapper '__init__' of function object>