Tensorflow オペレーションを作成するときに、共通名のプレフィックスなどの関連プロパティのグループを管理します。
 Scope 、TensorFlow Ops に適用される共通プロパティのコンテナです。通常のユーザー コードはScopeを初期化し、それをオペレーション構築クラスに提供します。例えば:
Scope scope = new Scope(graph);
 Constant c = Constant.create(scope, 42);
 Operation 構築クラスはスコープを取得し、それを使用して基礎となる Tensorflow 演算のプロパティを設定します。例えば:
// 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 、新しいスコープを作成するさまざまなwith()メソッドが用意されています。通常、新しいスコープでは 1 つのプロパティが変更され、他のプロパティは親スコープから継承されます。
前と同じように実装されたConstantを使用する例:
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, ...);
 スコープ オブジェクトはスレッドセーフではありません。
パブリックコンストラクター
パブリックメソッド
| オペレーションビルダー | applyControlDependency ( OperationBuilderビルダー)  controlDependency の各オペランドを、提供されたビルダーへのコントロール入力として追加します。 | 
| 実行環境 | 環境() このスコープで使用される実行環境を返します。 | 
| 弦 | makeOpName (文字列のデフォルト名) 必要に応じて、提供されているデフォルトを使用して、演算子の一意の名前を作成します。 | 
| 範囲 | |
| 範囲 | withName (文字列 opName) 指定された操作名を使用する新しいスコープを返します。 | 
| 範囲 | withSubScope (文字列 childScopeName) 追加されたオペレーションが指定された名前プレフィックスを持つ新しいスコープを返します。  | 
継承されたメソッド
パブリックコンストラクター
パブリックメソッド
public OperationBuilder applyControlDependency ( OperationBuilderビルダー)
controlDependency の各オペランドを、提供されたビルダーへのコントロール入力として追加します。
パラメータ
| ビルダー | 制御入力を追加する OperationBuilder | 
|---|
public String makeOpName (String defaultName)
必要に応じて、提供されているデフォルトを使用して、演算子の一意の名前を作成します。
これは通常、クラスを構築する演算子によってのみ呼び出されます。
このメソッドは、このインスタンスによって制御される名前スコープに適した一意の名前を生成します。典型的なオペレータ構築コードは次のようになります。
scope.env().opBuilder("Const", scope.makeOpName("Const"))...
 注:複合オペレーター構築クラス (つまり、他のオペレーター構築コードを呼び出して一連の関連操作を作成するクラス) を提供する場合、指定された名前はすべての基礎となるオペレーターのサブスコープとして機能します。
パラメータ
| デフォルト名 | 基礎となる演算子の名前。 | 
|---|
返品
- オペレーターの一意の名前。
投げる
| IllegalArgumentException | デフォルト名が無効な場合。 | 
|---|
public Scope withControlDependency (Iterable< Operand <?>> コントロール)
追加された操作が提供されたコントロールの依存関係を持つ新しいスコープを返します。
このスコープで作成された Ops には、提供された各コントロールからのコントロール エッジが含まれます。他のすべてのプロパティは現在のスコープから継承されます。
パラメータ
| コントロール | 返されたスコープで作成された操作の依存関係を制御します | 
|---|
返品
- 提供されたコントロールの依存関係を含む新しいスコープ
パブリックスコープwithName (文字列 opName)
指定された操作名を使用する新しいスコープを返します。
このスコープ内で作成されたオペレーションの名前はname/opName[_suffix]という形式になります。これにより、特定の演算子にわかりやすい名前を付けることができます。
名前は正規表現[A-Za-z0-9.][A-Za-z0-9_.\-]*と一致する必要があります。 
パラメータ
| 操作名 | 返されたスコープ内の演算子の名前 | 
|---|
返品
- 操作に opName を使用する新しいスコープ。
投げる
| IllegalArgumentException | 名前が無効な場合 | 
|---|
パブリックスコープwithSubScope (String childScopeName)
追加されたオペレーションが指定された名前プレフィックスを持つ新しいスコープを返します。
このスコープで作成された Ops には、プレフィックスとしてname/childScopeName/が付きます。実際の名前は、返されるスコープ内で一意になります。他のすべてのプロパティは現在のスコープから継承されます。
子スコープ名は正規表現[A-Za-z0-9.][A-Za-z0-9_.\-]*と一致する必要があります。 
パラメータ
| 子のスコープ名 | 新しい子スコープの名前 | 
|---|
返品
- 新しいサブスコープ
投げる
| IllegalArgumentException | 名前が無効な場合 | 
|---|