View source on GitHub

Builds a stack of layers by applying layer repeatedly using stack_args.

stack allows you to repeatedly apply the same operation with different arguments stack_args[i]. For each application of the layer, stack creates a new scope appended with an increasing number. For example:

  y = stack(x, fully_connected, [32, 64, 128], scope='fc')
  # It is equivalent to:

  x = fully_connected(x, 32, scope='fc/fc_1')
  x = fully_connected(x, 64, scope='fc/fc_2')
  y = fully_connected(x, 128, scope='fc/fc_3')

If the scope argument is not given in kwargs, it is set to layer.__name__, or layer.func.__name__ (for functools.partial objects). If neither __name__ nor func.__name__ is available, the layers are called with scope='stack'.

inputs A Tensor suitable for layer.
layer A layer with arguments (inputs, *args, **kwargs)
stack_args A list/tuple of parameters for each call of layer.
**kwargs Extra kwargs for the layer.

A Tensor result of applying the stacked layers.

ValueError If the op is unknown or wrong.