Join us at TensorFlow World, Oct 28-31. Use code TF20 for 20% off select passes. Register now

tff.framework.LambdaExecutor

View source

Class LambdaExecutor

The lambda executor handles lambda expressions and related abstractions.

Inherits From: Executor

NOTE: This component is only available in Python 3.

This executor understands TFF computation compositional constructs, including lambdas, blocks, references, calls, tuples, and selections, and orchestrates the execution of these constructs, while delegating all the non-compositional constructs (tensorflow, intrinsics, data, or placement) to a target executor.

NOTE: Not all lambda expressions are executed by this lambda executor. If the computation contains a call to an instrinsic that takes a functional argument, that functional argument is fed in its entirety to the target executor rather than being parsed by the lambda executor (since its execution needs to happen elsewhere).

The arguments to be ingested can be either federated computations (those are natively interpreted), or whatever other form of arguments are understood by the target executor.

__init__

View source

__init__(target_executor)

Creates a lambda executor backed by a target executor.

Args:

  • target_executor: An instance of executor_base.Executor to which the lambda executor delegates all that it cannot handle by itself.

Methods

create_call

View source

create_call(
    comp,
    arg=None
)

A coroutine that creates a call to comp with optional argument arg.

Args:

  • comp: The computation to invoke. It must have been first embedded in the executor by calling create_value() on it first.
  • arg: An optional argument of the call, or None if no argument was supplied. If it is present, it must have been embedded in the executor by calling create_value() on it first.

Returns:

An instance of executor_value_base.ExecutorValue that represents the constructed vall.

create_selection

View source

create_selection(
    source,
    index=None,
    name=None
)

A coroutine that creates a selection from source.

Args:

  • source: The source to select from. The source must have been embedded in this executor by invoking create_value() on it first.
  • index: An optional integer index. Either this, or name must be present.
  • name: An optional string name. Either this, or index must be present.

Returns:

An instance of executor_value_base.ExecutorValue that represents the constructed selection.

create_tuple

View source

create_tuple(elements)

A coroutine that creates a tuple of elements.

Args:

  • elements: An enumerable or dict with the elements to create a tuple from. The elements must all have been embedded in this executor by invoking create_value() on them first.

Returns:

An instance of executor_value_base.ExecutorValue that represents the constructed tuple.

create_value

View source

create_value(
    value,
    type_spec=None
)

A coroutine that creates embedded value from value of type type_spec.

This function is used to embed a value within the executor. The argument can be one of the plain Python types, a nested structure, a representation of a TFF computation, etc. Once embedded, the value can be further passed around within the executor. For functional values, embedding them prior to invocation potentally allows the executor to amortize overhead across multiple calls.

Args:

  • value: An object that represents the value to embed within the executor.
  • type_spec: An optional tff.Type of the value represented by this object, or something convertible to it. The type can only be omitted if the value is a instance of tff.TypedObject.

Returns:

An instance of executor_value_base.ExecutorValue that represents the embedded value.