A context manager for use when defining a Python op.

This context manager pushes a name scope, which will make the name of all operations added within it have a prefix.

For example, to define a new Python op called my_op:

def my_op(a, b, c, name=None):
  with tf.name_scope("MyOp") as scope:
    a = tf.convert_to_tensor(a, name="a")
    b = tf.convert_to_tensor(b, name="b")
    c = tf.convert_to_tensor(c, name="c")
    # Define some computation that uses `a`, `b`, and `c`.
    return foo_op(..., name=scope)

When executed, the Tensors a, b, c, will have names MyOp/a, MyOp/b, and MyOp/c.

Inside a tf.function, if the scope name already exists, the name will be made unique by appending _n. For example, calling my_op the second time will generate MyOp_1/a, etc.

name The prefix to use on all names created within the name scope.

ValueError If name is not a string.




View source

Start the scope block.

The scope name.


View source