TensorFlow 2.0 Beta is available Learn more

tff.framework.Reference

Class Reference

A reference to a name defined earlier in TFF's internal language.

Inherits From: ComputationBuildingBlock

Defined in python/core/impl/computation_building_blocks.py.

Names are defined by lambda expressions (which have formal named parameters), and block structures (which can have one or more locals). The reference construct is used to refer to those parameters or locals by a string name. The usual hiding rules apply. A reference binds to the closest definition of the given name in the most deeply nested surrounding lambda or block.

A concise notation for a reference to name foo is foo. For example, in a lambda expression (x -> f(x)) there are two references, one to x that is defined as the formal parameter of the lambda epxression, and one to f that must have been defined somewhere in the surrounding context.

__init__

__init__(
    name,
    type_spec,
    context=None
)

Creates a reference to 'name' of type 'type_spec' in context 'context'.

Args:

  • name: The name of the referenced entity.
  • type_spec: The type spec of the referenced entity.
  • context: The optional context in which the referenced entity is defined. This class does not prescribe what Python type the 'context' needs to be and merely exposes it as a property (see below). The only requirement is that the context implements str() and repr().

Raises:

  • TypeError: if the arguments are of the wrong types.

Properties

context

name

proto

Returns a serialized form of this object as a pb.Computation instance.

tff_repr

Returns the representation of the instance using TFF syntax.

type_signature

Returns the TFF type of this object (an instance of tff.Type).

Methods

from_proto

@classmethod
from_proto(
    cls,
    computation_proto
)

Returns an instance of a derived class based on 'computation_proto'.

Args:

  • computation_proto: An instance of pb.Computation.

Returns:

An instance of a class that implements 'ComputationBuildingBlock' and that contains the deserialized logic from in 'computation_proto'.

Raises:

  • NotImplementedError: if computation_proto contains a kind of computation for which deserialization has not been implemented yet.
  • ValueError: if deserialization failed due to the argument being invalid.