ML Community Day is November 9! Join us for updates from TensorFlow, JAX, and more Learn more


Represents a graph node that performs computation on tensors.

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 is a shortcut for calling tf.compat.v1.get_default_session().run(op).

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.

TypeError if control inputs are not Operations or Tensors, or if node_def is not a