Manages groups of related properties when creating Tensorflow Operations, such as a common name prefix.
       A
       
        Scope
       
       is a container for common properties applied to TensorFlow Ops. Normal user
 code initializes a
       
        Scope
       
       and provides it to Operation building classes. For example:
       
Scope scope = new Scope(graph);
 Constant c = Constant.create(scope, 42);
 An Operation building class acquires a Scope, and uses it to set properties on the underlying Tensorflow ops. For example:
// An operator class that adds a constant.
 public class Constant {
   public static Constant create(Scope scope, ...) {
      scope.graph().opBuilder(
        "Const", scope.makeOpName("Const"))
        .setAttr(...)
        .build()
      ...
   
 }
 }Scope hierarchy:
          A
          
           Scope
          
          provides various
          
           with()
          
          methods that create a new scope. The new scope
 typically has one property changed while other properties are inherited from the parent scope.
          
           An example using
           
            Constant
           
           implemented as before:
           
Scope root = new Scope(graph);
 // The linear subscope will generate names like linear/...
 Scope linear = Scope.withSubScope("linear");
 // This op name will be "linear/W"
 Constant.create(linear.withName("W"), ...);
 // This op will be "linear/Const", using the default
 // name provided by Constant
 Constant.create(linear, ...);
 // This op will be "linear/Const_1", using the default
 // name provided by Constant and making it unique within
 // this scope
 Constant.create(linear, ...);
 Scope objects are not thread-safe.
Public Constructors
Public Methods
| OperationBuilder | 
           
           
            
             applyControlDependencies
            
           
           (
           
            OperationBuilder
           
           builder)
            
         
            Adds each Operand in controlDependencies as a control input to the provided builder.
            
           | 
        
| ExecutionEnvironment | 
           
           
            
             env
            
           
           ()
            
         
            Returns the execution environment used by this scope.
            
           | 
        
| String | 
           
           
            
             makeOpName
            
           
           (String defaultName)
            
         
            Create a unique name for an operator, using a provided default if necessary.
            
           | 
        
| Scope | 
           
           
            
             withControlDependencies
            
           
           (Iterable<
           
            Operand
           
           <?>> controls)
            
         
            Returns a new scope where added operations will have the provided control dependencies.
            
           | 
        
| Scope | 
           
           
            
             withName
            
           
           (String opName)
            
         
            Return a new scope that uses the provided name for an op.
            
           | 
        
| Scope | 
           
           
            
             withSubScope
            
           
           (String childScopeName)
            
         
            Returns a new scope where added operations will have the provided name prefix.
            
           | 
        
Inherited Methods
Public Constructors
public Scope ( ExecutionEnvironment env)
Create a new top-level scope.
Parameters
| env | The execution environment used by the scope. | 
|---|
Public Methods
public OperationBuilder applyControlDependencies ( OperationBuilder builder)
Adds each Operand in controlDependencies as a control input to the provided builder.
Parameters
| builder | OperationBuilder to add control inputs to | 
|---|
public String makeOpName (String defaultName)
Create a unique name for an operator, using a provided default if necessary.
This is normally called only by operator building classes.
This method generates a unique name, appropriate for the name scope controlled by this instance. Typical operator building code might look like
scope.env().opBuilder("Const", scope.makeOpName("Const"))...
 Note: if you provide a composite operator building class (i.e, a class that creates a set of related operations by calling other operator building code), the provided name will act as a subscope to all underlying operators.
Parameters
| defaultName | name for the underlying operator. | 
|---|
Returns
- unique name for the operator.
 
Throws
| IllegalArgumentException | if the default name is invalid. | 
|---|
public Scope withControlDependencies (Iterable< Operand <?>> controls)
Returns a new scope where added operations will have the provided control dependencies.
Ops created with this scope will have a control edge from each of the provided controls. All other properties are inherited from the current scope.
Parameters
| controls | control dependencies for ops created with the returned scope | 
|---|
Returns
- a new scope with the provided control dependencies
 
public Scope withName (String opName)
Return a new scope that uses the provided name for an op.
          Operations created within this scope will have a name of the form
          
           name/opName[_suffix]
          
          . This lets you name a specific operator more meaningfully.
          
           Names must match the regular expression
           
            [A-Za-z0-9.][A-Za-z0-9_.\-]*
           
          
Parameters
| opName | name for an operator in the returned scope | 
|---|
Returns
- a new Scope that uses opName for operations.
 
Throws
| IllegalArgumentException | if the name is invalid | 
|---|
public Scope withSubScope (String childScopeName)
Returns a new scope where added operations will have the provided name prefix.
          Ops created with this scope will have
          
           name/childScopeName/
          
          as the prefix. The actual
 name will be unique in the returned scope. All other properties are inherited from the current
 scope.
          
           The child scope name must match the regular expression
           
            [A-Za-z0-9.][A-Za-z0-9_.\-]*
           
          
Parameters
| childScopeName | name for the new child scope | 
|---|
Returns
- a new subscope
 
Throws
| IllegalArgumentException | if the name is invalid | 
|---|