tff.framework.Reference

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

Inherits From: ComputationBuildingBlock, TypedObject

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.

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().

TypeError if the arguments are of the wrong types.

context

name

proto Returns a serialized form of this object as a pb.Computation instance.
type_signature Returns the TFF type of this object (an instance of tff.Type).

Methods

check_block

View source

Check that this is a 'Block'.

check_call

View source

Check that this is a 'Call'.

check_compiled_computation

View source

Check that this is a 'CompiledComputation'.

check_data

View source

Check that this is a 'Data'.

check_intrinsic

View source

Check that this is an 'Intrinsic'.

check_lambda

View source

Check that this is a 'Lambda'.

check_placement

View source

Check that this is a 'Placement'.

check_reference

View source

Check that this is a 'Reference'.

check_selection

View source

Check that this is a 'Selection'.

check_struct

View source

Check that this is a Struct.

children

View source

Returns an iterator yielding immediate child building blocks.

compact_representation

View source

Returns the compact string representation of this building block.

formatted_representation

View source

Returns the formatted string representation of this building block.

from_proto

View source

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.

structural_representation

View source

Returns the structural string representation of this building block.