View source on GitHub
|
A struct with named or unnamed elements in TFF's internal language.
Inherits From: ComputationBuildingBlock, TypedObject, Struct
tff.framework.Struct(
elements, container_type=None
)
The concise notation for structs is <name_1=value_1, ...., name_n=value_n>
for structs with named elements, <value_1, ..., value_n> for structs with
unnamed elements, or a mixture of these for structs with some named and some
unnamed elements, where name_k are the names, and value_k are the value
expressions.
For example, a lambda expression that applies fn to elements of 2-structs
pointwise could be represented as (arg -> <fn(arg[0]),fn(arg[1])>).
Args | |
|---|---|
elements
|
The elements of the struct, supplied as a list of (name, value)
pairs, where 'name' can be None in case the corresponding element is not
named and only accessible via an index (see also structure.Struct).
|
container_type
|
An optional Python container type to associate with the struct. |
Raises | |
|---|---|
TypeError
|
if arguments are of the wrong types. |
Attributes | |
|---|---|
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
children
children() -> Iterator[tff.framework.ComputationBuildingBlock]
Returns an iterator yielding immediate child building blocks.
compact_representation
compact_representation()
Returns the compact string representation of this building block.
formatted_representation
formatted_representation()
Returns the formatted string representation of this building block.
from_proto
@classmethodfrom_proto( computation_proto: pb.Computation ) -> 'Struct'
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. |
named
@classmethodnamed( **kwargs ) -> 'Struct'
Constructs a new Struct with all named elements.
structural_representation
structural_representation()
Returns the structural string representation of this building block.
unnamed
@classmethodunnamed( *args ) -> 'Struct'
Constructs a new Struct with all unnamed elements.
__eq__
__eq__(
other: object
) -> bool
Return self==value.
__getitem__
__getitem__(
key: Union[int, str, slice]
) -> _T
__iter__
__iter__() -> Iterator[_T]
__len__
__len__() -> int
__ne__
__ne__(
other: object
) -> bool
Return self!=value.
View source on GitHub