TF 2.0 is out! Get hands-on practice at TF World, Oct 28-31. Use code TF20 for 20% off select passes. Register now


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.