共通名プレフィックスなど、Tensorflowオペレーションを作成するときに、関連するプロパティのグループを管理します。
Scope
TensorFlowオプスに印加される共通プロパティのコンテナです。通常のユーザーコードは、初期化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, ...);
スコープオブジェクトはスレッドセーフではありません。
パブリックコンストラクタ
パブリックメソッド
OperationBuilder | applyControlDependencies ( OperationBuilderビルダー) 提供されたビルダーへの制御入力として、controlDependenciesの各オペランドを追加します。 |
ExecutionEnvironment | ENV () このスコープで使用される実行環境を返します。 |
弦 | makeOpName (文字列DEFAULTNAME) 必要に応じて提供されたデフォルトを使用して、オペレーターの一意の名前を作成します。 |
範囲 | |
範囲 | withName (文字列OPNAME) opに指定された名前を使用する新しいスコープを返します。 |
範囲 | withSubScope (文字列childScopeName) 追加された操作に指定された名前プレフィックスが付いた新しいスコープを返します。 |
継承されたメソッド
パブリックコンストラクタ
パブリックメソッド
公共OperationBuilder applyControlDependencies( OperationBuilderビルダー)
提供されたビルダーへの制御入力として、controlDependenciesの各オペランドを追加します。
パラメーター
ビルダー | 制御入力を追加するOperationBuilder |
---|
公共の文字列makeOpName(文字列DEFAULTNAME)
必要に応じて提供されたデフォルトを使用して、オペレーターの一意の名前を作成します。
これは通常、オペレーター構築クラスによってのみ呼び出されます。
このメソッドは、このインスタンスによって制御される名前スコープに適した一意の名前を生成します。典型的なオペレータの建物のコードは次のようになります
scope.env().opBuilder("Const", scope.makeOpName("Const"))...
注:複合演算子構築するクラスを提供する場合(すなわち、他のオペレータの建物のコードを呼び出すことによって、関連する一連の操作を作成するクラス)は、指定した名前は、すべての基本となる事業者にサブスコープとして機能します。
パラメーター
defaultName | 基になる演算子の名前。 |
---|
戻り値
- オペレーターの一意の名前。
投げる
IllegalArgumentException | デフォルト名が無効な場合。 |
---|
公共スコープwithControlDependencies(反復処理可能<オペランド<?>>コントロール)
追加された操作が提供されたコントロールの依存関係を持つ新しいスコープを返します。
このスコープで作成されたOpsには、提供されている各コントロールからのコントロールエッジがあります。他のすべてのプロパティは、現在のスコープから継承されます。
パラメーター
コントロール | 返されたスコープで作成されたopsの依存関係を制御する |
---|
戻り値
- 提供された制御依存関係を持つ新しいスコープ
公共スコープwithName(文字列OPNAME)
opに指定された名前を使用する新しいスコープを返します。
この範囲内で作成された操作は、フォームの名前になりますname/opName[_suffix]
。これにより、特定の演算子にもっと意味のある名前を付けることができます。
名前が正規表現に一致する必要があり[A-Za-z0-9.][A-Za-z0-9_.\-]*
パラメーター
opName | 返されたスコープ内のオペレーターの名前 |
---|
戻り値
- 操作にopNameを使用する新しいスコープ。
投げる
IllegalArgumentException | 名前が無効な場合 |
---|
公共スコープwithSubScope(文字列childScopeName)
追加された操作に指定された名前プレフィックスが付いた新しいスコープを返します。
このスコープを使用して作成オプスはありますname/childScopeName/
接頭辞として。実際の名前は、返されるスコープ内で一意になります。他のすべてのプロパティは、現在のスコープから継承されます。
子スコープ名が正規表現に一致する必要があり[A-Za-z0-9.][A-Za-z0-9_.\-]*
パラメーター
childScopeName | 新しい子スコープの名前 |
---|
戻り値
- 新しいサブスコープ
投げる
IllegalArgumentException | 名前が無効な場合 |
---|