Watch talks from the 2019 TensorFlow Dev Summit Watch now



Defined in core/api/

Maps a TFF sequence value pointwise using a given function mapping_fn.

This function supports two modes of usage:

  • When applied to a non-federated sequence, it maps individual elements of the sequence pointwise. If the supplied mapping_fn is of type T->U and the sequence value is of type T* (a seqeunce of T-typed elements), the result is a sequence of type U* (a sequence of U-typed elements), with each element of the input sequence individually mapped by mapping_fn. In this mode of usage, sequence_map behaves like a compuatation with type signature <T->U,T*> -> U*.

  • When applied to a federated sequence, sequence_map behaves as if it were individually applied to each member constituent. In this mode of usage, one can think of sequence_map as a specialized variant of federated_map or federated_apply that is designed to work with sequences and allows one to specify a mapping_fn that operates at the level of individual elements. Indeed, under the hood, when sequence_map is invoked on a federated type, it injects one of the federated_map or federated_apply variants, thus emitting expressions like federated_map(a -> sequence_map(mapping_fn, x), value).


  • mapping_fn: A mapping function to apply pointwise to elements of value.
  • value: A value of a TFF type that is either a sequence, or a federated sequence.


A sequence with the result of applying mapping_fn pointwise to each element of value, or if value was federated, a federated sequence with the result of invoking sequence_map on member sequences locally and independently at each location.


  • TypeError: If the arguments are not of the appropriate types.