警告:このAPIは非推奨であり、置き換えが安定した後 TensorFlowの将来のバージョンで削除される予定です。

Scope

パブリックファイナルクラススコープ

共通名プレフィックスなど、Tensorflowオペレーションを作成するときに、関連するプロパティのグループを管理します。

Scopeは、TensorFlowOpsに適用される一般的なプロパティのコンテナです。通常のユーザーコードはScopeを初期化し、オペレーション構築クラスに提供します。例:

Scope scope = new Scope(graph);
 Constant c = Constant.create(scope, 42);
 

オペレーションビルディングクラスはスコープを取得し、それを使用して基盤となる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, ...);
 

スコープオブジェクトはスレッドセーフではありません

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

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

パブリックメソッド

OperationBuilder
applyControlDependenciesOperationBuilderビルダー)
提供されたビルダーへの制御入力として、controlDependenciesの各オペランドを追加します。
ExecutionEnvironment
env ()
このスコープで使用される実行環境を返します。
ストリング
makeOpName (String defaultName)
必要に応じて提供されたデフォルトを使用して、オペレーターの一意の名前を作成します。
範囲
withControlDependencies (Iterable < Operand <?>>コントロール)
追加された操作が提供されたコントロールの依存関係を持つ新しいスコープを返します。
範囲
withName (String opName)
opに指定された名前を使用する新しいスコープを返します。
範囲
withSubScope (String childScopeName)
追加された操作に指定された名前プレフィックスが付いた新しいスコープを返します。

継承されたメソッド

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

パブリックスコープExecutionEnvironment env)

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

パラメーター
envスコープが使用する実行環境。

パブリックメソッド

public OperationBuilder applyControlDependencies OperationBuilderビルダー)

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

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

public ExecutionEnvironment env ()

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

public String makeOpName (String defaultName)

必要に応じて提供されたデフォルトを使用して、オペレーターの一意の名前を作成します。

これは通常、オペレーター構築クラスによってのみ呼び出されます。

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

scope.env().opBuilder("Const", scope.makeOpName("Const"))...
 
のようになります

注:複合演算子構築クラス(つまり、他の演算子構築コードを呼び出すことによって関連する操作のセットを作成するクラス)を提供する場合、提供された名前は、基礎となるすべての演算子のサブスコープとして機能します。

パラメーター
defaultName基になる演算子の名前。
戻り値
  • オペレーターの一意の名前。
投げる
IllegalArgumentExceptionデフォルト名が無効な場合。

public Scope withControlDependencies (Iterable < Operand <?>>コントロール)

追加された操作が提供されたコントロールの依存関係を持つ新しいスコープを返します。

このスコープで作成された操作には、提供されている各コントロールからのコントロールエッジがあります。他のすべてのプロパティは、現在のスコープから継承されます。

パラメーター
コントロール返されたスコープで作成されたopsの依存関係を制御します
戻り値
  • 提供された制御依存関係を持つ新しいスコープ

public Scope withName (String opName)

opに指定された名前を使用する新しいスコープを返します。

このスコープ内で作成された操作には、 name/opName[_suffix]という形式のname/opName[_suffix] 。これにより、特定の演算子にもっと意味のある名前を付けることができます。

名前は正規表現[A-Za-z0-9.][A-Za-z0-9_.\-]*一致する必要があり[A-Za-z0-9.][A-Za-z0-9_.\-]*

パラメーター
opName返されたスコープ内のオペレーターの名前
戻り値
  • 操作にopNameを使用する新しいスコープ。
投げる
IllegalArgumentException名前が無効な場合

public Scope withSubScope (String childScopeName)

追加された操作に指定された名前プレフィックスが付いた新しいスコープを返します。

このスコープで作成されたOpsには、プレフィックスとしてname/childScopeName/られます。実際の名前は、返されるスコープ内で一意になります。他のすべてのプロパティは、現在のスコープから継承されます。

子スコープ名は、正規表現[A-Za-z0-9.][A-Za-z0-9_.\-]*一致する必要があり[A-Za-z0-9.][A-Za-z0-9_.\-]*

パラメーター
childScopeName新しい子スコープの名前
戻り値
  • 新しいサブスコープ
投げる
IllegalArgumentException名前が無効な場合