ConcreteFunction

パブリック クラスConcreteFunction

入力および出力のシグネチャを使用して、単一の関数として呼び出すことができるグラフ。

関数は、 SavedModelBundleで定義されたtf.functionを呼び出すこともできます。

ConcreteFunction myFunction = savedModelBundle.function("myFunctionSignatureName");
 Map<String, Tensor> outputTensorMap = myFunction.call(inputTensorMap);
 

パブリックメソッド

テンソル
呼び出し(テンソルテンソル)
単一の入力と出力を使用して関数を呼び出します。
Map<String, Tensor >
call (Map<String, Tensor > 引数)
関数を呼び出します。
空所
近い()
静的な具体関数
作成(署名署名、セッションセッション)
シグネチャと有効なグラフ セッションから関数を作成します。
静的な具体関数
create (Function<Ops, Signature > functionBuilder)
新しいグラフを構築して関数を作成します。
静的な具体関数
作成(署名署名、グラフグラフ)
シグネチャと既存のグラフから関数を作成します。
グラフ
グラフ()
この関数のグラフを返します
空所
保存(文字列のエクスポートディレクトリ)
この関数を保存されたモデルとしてエクスポートします。
セッション
セッション()
この関数を呼び出すときにグラフの実行に使用されるセッションを返します。

一般に、ユーザーは関数のセッションを直接処理する必要はなく、代わりにcall(Map)に依存してグラフを実行します。

サイン
サイン()
この関数のシグネチャを返します

継承されたメソッド

パブリックメソッド

パブリックTensor呼び出し( Tensorテンソル)

単一の入力と出力を使用して関数を呼び出します。

呼び出し元はすべての Tensor を閉じる責任があります。

パラメータ
テンソル入力テンソル
返品
  • 出力テンソル
投げる
IllegalArgumentException関数内に複数の入力パラメータまたは出力パラメータが定義されている場合

public Map<String, Tensor > call (Map<String, Tensor > 引数)

関数を呼び出します。

呼び出し元はすべての Tensor を閉じる責任があります。

パラメータ
引数関数への入力で渡すテンソルのリスト (シグネチャ名によってマップされる)
返品
  • 関数の実行から得られる、シグネチャ名によってマッピングされた出力テンソル
投げる
IllegalArgumentException

public void close ()

public static ConcreteFunction create (署名署名セッションセッション)

シグネチャと有効なグラフ セッションから関数を作成します。

関数はセッションもそのグラフも所有しません。つまり、それらの有効期間は関数の範囲を超えて延長される可能性があります。したがって、関数を使用後に閉じる必要はありません。例えば:

try (Graph g = new Graph()) {
   Placeholder<TFloat32> input = tf.placeholder(TFloat32.class);
   Add<TFloat32> output = tf.math.add(input, tf.constant(2.0f));
   Signature signature = Signature.builder().input("x", input).output("y", output).build();

   try (Session s = new Session(g)) {
     // Auto-closing the function just as an example but this is not required since it has
     // no effect
     try (ConcreteFunction f = ConcreteFunction.create(signature, s);
         TFloat32 t = TFloat32.scalarOf(2.0f)) {
       assertEquals(4.0f, ((TFloat32)function.call(x)).getFloat());
     
     // Session s is still valid at this point
   }
   // Graph g is still valid at this point
 }
 }

パラメータ
サイン作成する関数のシグネチャ
セッション初期化されたグラフへの有効なセッション
返品
  • 新しい機能

public static ConcreteFunction create (Function<Ops, Signature > functionBuilder)

新しいグラフを構築して関数を作成します。

functionBuilder 、提供されたERROR(/Ops)インスタンスから関数グラフを初期化し、入力テンソルをフィードし、実行時に出力テンソルをフェッチするために使用される有効な署名を返す必要があります。

この関数は、新しいグラフとその結果のセッションの所有者になります。したがって、関数が破棄された後にすべてのネイティブ リソースが解放されることを保証するには、関数を try-with-resources ブロックで適切に囲む必要があります。例えば:

public class MyModel {

   public static Signature addTwo(Ops tf) {
     Placeholder<TFloat32> input = tf.placeholder(TFloat32.class);
     Add<TFloat32> output = tf.math.add(input, tf.constant(2.0f));
     return Signature.builder("addTwo").input("x", input).output("y", output).build();
   

   public static void main(String args[]) {
     try (ConcreteFunction function = ConcreteFunction.create(MyModel::addTwo);
         TFloat32 x = TFloat32.scalarOf(2.0f)) {
       assertEquals(4.0f, ((TFloat32)function.call(x)).getFloat());
     }
   }
 }
 }

パラメータ
関数ビルダー関数ビルダー
返品
  • 新しい機能

public static ConcreteFunction create (署名署名グラフグラフ)

シグネチャと既存のグラフから関数を作成します。

この関数は、グラフの実行に使用されるセッションの所有権を保持しますが、グラフ自体の所有権は保持しません。つまり、後者の存続期間は関数の範囲を超えて延長される可能性があります。例えば:

try (Graph g = new Graph()) {
   Placeholder<TFloat32> input = tf.placeholder(TFloat32.class);
   Add<TFloat32> output = tf.math.add(input, tf.constant(2.0f));
   Signature signature = Signature.builder().input("x", input).output("y", output).build();

   try (ConcreteFunction f = ConcreteFunction.create(signature, g);
       TFloat32 x = TFloat32.scalarOf(2.0f)) {
     assertEquals(4.0f, ((TFloat32)function.call(x)).getFloat());
   
   // Graph g is still valid at this point
 }
 }

パラメータ
サイン作成する関数のシグネチャ
グラフ有効で初期化されたグラフ
返品
  • 新しい機能

公開グラフグラフ()

この関数のグラフを返します

public void save (String exportDir)

この関数を保存されたモデルとしてエクスポートします。

このメソッドはSavedModel.exporter(exportDir).withFunction(this).export()と同等の便利なショートカットです。

パラメータ
エクスポートディレクトリ保存されたモデルをエクスポートするディレクトリ
投げる
IO例外保存されたモデルまたは変数の状態をディスクに書き込めない場合

公開セッションセッション()

この関数を呼び出すときにグラフの実行に使用されるセッションを返します。

一般に、ユーザーは関数のセッションを直接処理する必要はなく、代わりにcall(Map)に依存してグラフを実行します。ただし、場合によっては、より多くの実行オプションが可能になるため、セッションへの直接アクセスが必要になることがあります。

返品
  • 関数セッション

公開署名署名()

この関数のシグネチャを返します

public String toString ()