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, ...);
 

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

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

スコープ(実行環境環境)
新しいトップレベルのスコープを作成します。

パブリックメソッド

オペレーションビルダー
適用( OperationBuilderビルダー)
デバイス仕様を適用し、controlDependency の各オペランドをコントロール入力として提供されたビルダーに追加します。
オペレーションビルダー
applyControlDependency ( OperationBuilderビルダー)
controlDependency の各オペランドを、提供されたビルダーへのコントロール入力として追加します。
実行環境
環境()
このスコープで使用される実行環境を返します。
getDeviceString ()
スコープからデバイス文字列を返します。
makeOpName (文字列のデフォルト名)
必要に応じて、提供されているデフォルトを使用して、演算子の一意の名前を作成します。
範囲
withControlDependency (Iterable< Op > コントロール)
追加された操作が提供されたコントロールの依存関係を持つ新しいスコープを返します。
範囲
withDevice ( DeviceSpec deviceSpec)
操作に対して指定されたデバイス仕様を使用する新しいスコープを返します。
範囲
withName (文字列 opName)
指定された操作名を使用する新しいスコープを返します。
範囲
withNameAsSubScope (文字列のデフォルト名)
追加された操作の先頭にこのスコープの操作名 ( withName(String)で設定) が付加される新しいスコープを返します。設定されていない場合は指定されたデフォルトを返します。
範囲
withSubScope (文字列 childScopeName)
追加されたオペレーションが指定された名前プレフィックスを持つ新しいスコープを返します。

継承されたメソッド

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

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

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

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

パブリックメソッド

public OperationBuilder apply ( OperationBuilderビルダー)

デバイス仕様を適用し、controlDependency の各オペランドをコントロール入力として提供されたビルダーに追加します。

パラメーター
ビルダー制御入力とデバイス仕様を追加する OperationBuilder

public OperationBuilder applyControlDependency ( OperationBuilderビルダー)

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

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

public ExecutionEnvironment env ()

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

パブリック String getDeviceString ()

スコープからデバイス文字列を返します。

public String makeOpName (String defaultName)

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

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

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

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

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

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

public Sc​​ope withControlDependency (Iterable< Op > コントロール)

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

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

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

public Sc​​ope withDevice ( DeviceSpec deviceSpec)

操作に対して指定されたデバイス仕様を使用する新しいスコープを返します。

このスコープ内で作成されたオペレーションは、指定された仕様に一致するデバイス上に作成されたオペレーションを配置します。

パラメーター
デバイススペック返されたスコープ内のオペレーターのデバイス仕様
戻り値
  • 操作に opName を使用する新しいスコープ。

パブリックスコープwithName (文字列 opName)

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

このスコープ内で作成されたオペレーションの名前はname/opName[_suffix]という形式になります。これにより、特定の演算子にわかりやすい名前を付けることができます。

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

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

パブリックスコープwithNameAsSubScope (文字列defaultName)

追加された操作の先頭にこのスコープの操作名 ( withName(String)で設定) が付加される新しいスコープを返します。設定されていない場合は指定されたデフォルトを返します。これは複合操作に使用することを目的としています。

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

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

パラメーター
デフォルト名このスコープの名前が設定されていない場合は、サブスコープの名前。
戻り値
  • 新しいサブスコープ
投げる
IllegalArgumentException名前が無効な場合

パブリックスコープwithSubScope (String childScopeName)

追加されたオペレーションが指定された名前プレフィックスを持つ新しいスコープを返します。

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

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

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