Scope

パブリック最終クラスのスコープ

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 (文字列のデフォルト名)
必要に応じて、提供されているデフォルトを使用して、演算子の一意の名前を作成します。
範囲
withControlDependency (Iterable< Operand <?>> コントロール)
追加された操作が提供されたコントロールの依存関係を持つ新しいスコープを返します。
範囲
withName (文字列 opName)
指定された操作名を使用する新しいスコープを返します。
範囲
withSubScope (文字列 childScopeName)
追加されたオペレーションが指定された名前プレフィックスを持つ新しいスコープを返します。

継承されたメソッド

パブリックコンストラクター

パブリックスコープ(実行環境環境)

新しいトップレベルのスコープを作成します。

パラメータ
環境スコープによって使用される実行環境。

パブリックメソッド

public OperationBuilder applyControlDependency ( OperationBuilderビルダー)

controlDependency の各オペランドを、提供されたビルダーへのコントロール入力として追加します。

パラメータ
ビルダー制御入力を追加する OperationBuilder

public ExecutionEnvironment env ()

このスコープで使用される実行環境を返します。

public String makeOpName (String defaultName)

必要に応じて、提供されているデフォルトを使用して、演算子の一意の名前を作成します。

これは通常、クラスを構築する演算子によってのみ呼び出されます。

このメソッドは、このインスタンスによって制御される名前スコープに適した一意の名前を生成します。典型的なオペレータ構築コードは次のようになります。

scope.env().opBuilder("Const", scope.makeOpName("Const"))...
 

注:複合オペレーター構築クラス (つまり、他のオペレーター構築コードを呼び出して一連の関連操作を作成するクラス) を提供する場合、指定された名前はすべての基礎となるオペレーターのサブスコープとして機能します。

パラメータ
デフォルト名基礎となる演算子の名前。
返品
  • オペレーターの一意の名前。
投げる
IllegalArgumentExceptionデフォルト名が無効な場合。

public Sc​​ope 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名前が無効な場合