View source on GitHub |
Represents a graph node that performs computation on tensors.
tf.Operation(
*args, **kwargs
)
An Operation
is a node in a tf.Graph
that takes zero or more Tensor
objects as input, and produces zero or more Tensor
objects as output.
Objects of type Operation
are created by calling a Python op constructor
(such as tf.matmul
) within a tf.function
or under a tf.Graph.as_default
context manager.
For example, within a tf.function
, c = tf.matmul(a, b)
creates an
Operation
of type "MatMul" that takes tensors a
and b
as input, and
produces c
as output.
If a tf.compat.v1.Session
is used, an Operation
of a tf.Graph
can be
executed by passing it to tf.Session.run
. op.run()
is a shortcut for
calling tf.compat.v1.get_default_session().run(op)
.
Methods
colocation_groups
colocation_groups() -> list[bytes]
Returns the list of colocation groups of the op.
experimental_set_type
experimental_set_type(
type_proto
) -> None
Sets the corresponding node's experimental_type
field.
See the description of NodeDef.experimental_type
for more info.
Args | |
---|---|
type_proto
|
A FullTypeDef proto message. The root type_if of this object
must be TFT_PRODUCT , even for ops which only have a singlre return
value.
|
from_node_def
@classmethod
from_node_def( node_def, g, inputs=None, output_types=None, control_inputs=None, input_types=None, original_op=None, op_def=None ) -> OperationType
Creates an Operation
.
[A-Za-z0-9.][A-Za-z0-9_.\\-/]*
Args | |
---|---|
node_def
|
node_def_pb2.NodeDef . NodeDef for the Operation . Used for
attributes of node_def_pb2.NodeDef , typically name , op , and
device . The input attribute is irrelevant here as it will be
computed when generating the model.
|
g
|
Graph . The parent graph.
|
inputs
|
list of Tensor objects. The inputs to this Operation .
|
output_types
|
list of DType objects. List of the types of the Tensors
computed by this operation. The length of this list indicates the
number of output endpoints of the Operation .
|
control_inputs
|
list of operations or tensors from which to have a control dependency. |
input_types
|
List of DType objects representing the types of the tensors
accepted by the Operation . By default uses [x.dtype.base_dtype for x
in inputs] . Operations that expect reference-typed inputs must specify
these explicitly.
|
original_op
|
Optional. Used to associate the new Operation with an
existing Operation (for example, a replica with the op that was
replicated).
|
op_def
|
Optional. The op_def_pb2.OpDef proto that describes the op type
that this Operation represents.
|
Raises | |
---|---|
TypeError
|
if control inputs are not Operations or Tensors,
or if node_def is not a NodeDef ,
or if g is not a Graph ,
or if inputs are not tensors,
or if inputs and input_types are incompatible.
|
ValueError
|
if the node_def name is not valid.
|
Returns | |
---|---|
Operation object. |
get_attr
get_attr(
name
)
Returns the value of the attr of this op with the given name
.
Args | |
---|---|
name
|
The name of the attr to fetch. |
Returns | |
---|---|
The value of the attr, as a Python object. |
Raises | |
---|---|
ValueError
|
If this op does not have an attr with the given name .
|
run
run(
feed_dict=None, session=None
) -> None
Runs this operation in a Session
.
Calling this method will execute all preceding operations that produce the inputs needed for this operation.
Args | |
---|---|
feed_dict
|
A dictionary that maps Tensor objects to feed values. See
tf.Session.run for a description of the valid feed values.
|
session
|
(Optional.) The Session to be used to run to this operation. If
none, the default session will be used.
|
values
values() -> tuple[Any, ...]