ConcreteFunction

klasa publiczna ConcreteFunction

Wykres, który można wywołać jako pojedynczą funkcję, z sygnaturą wejściową i wyjściową.

Funkcja może również wywołać funkcję tf zdefiniowaną w SavedModelBundle .

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

Metody publiczne

Napinacz
wywołanie ( tensor tensora)
Wywołuje funkcję z pojedynczym wejściem i wyjściem.
Mapa<String, Tensor >
wywołanie (Map<String, Tensor > argumenty)
Wywołuje funkcję.
próżnia
statyczna funkcja ConcreteFunction
utwórz (podpis podpisu , sesja sesji )
Utwórz funkcję na podstawie podpisu i prawidłowej sesji wykresu.
statyczna funkcja ConcreteFunction
utwórz (Funkcja <Ops, Podpis > Konstruktor funkcji)
Tworzy funkcję, budując nowy wykres.
statyczna funkcja ConcreteFunction
utwórz (podpis podpisu , wykres wykresu )
Utwórz funkcję na podstawie podpisu i istniejącego wykresu.
Wykres
wykres ()
Zwraca wykres tej funkcji
próżnia
zapisz (String eksportDir)
Eksportuj tę funkcję jako zapisany model.
Sesja
sesja ()
Zwraca sesję użytą do wykonania wykresu podczas wywoływania tej funkcji

Ogólnie rzecz biorąc, użytkownik nie musi bezpośrednio obsługiwać sesji funkcji i zamiast tego polegać na call(Map) , aby wykonać wykres.

Podpis
podpis ()
Zwraca sygnaturę tej funkcji
Strunowy

Metody dziedziczone

Metody publiczne

publiczne wywołanie Tensora ( Tensor Tensora)

Wywołuje funkcję z pojedynczym wejściem i wyjściem.

Osoba wywołująca jest odpowiedzialna za zamknięcie wszystkich tensorów.

Parametry
napinacz tensor wejściowy
Zwroty
  • tensor wyjściowy
Rzuca
Wyjątek IllegalArgument jeśli w funkcji zdefiniowanych jest wiele parametrów wejściowych lub wyjściowych

public Map<String, Tensor > wywołanie (Map<String, Tensor > argumenty)

Wywołuje funkcję.

Osoba wywołująca jest odpowiedzialna za zamknięcie wszystkich tensorów.

Parametry
argumenty lista tensorów do przekazania danych wejściowych do funkcji, odwzorowana według ich nazwy podpisu
Zwroty
  • tensory wyjściowe wynikające z wykonania funkcji, odwzorowane według ich nazwy sygnatury
Rzuca
Wyjątek IllegalArgument

publiczna pustka zamknij ()

public static ConcreteFunction create (podpis podpisu , sesja sesji )

Utwórz funkcję na podstawie podpisu i prawidłowej sesji wykresu.

Funkcja nie będzie właścicielem sesji ani jej wykresu, co oznacza, że ​​ich czas życia może wykraczać poza zakres funkcji. Dlatego funkcja nie musi być zamykana po jej użyciu. Na przykład:

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
 }
 }

Parametry
podpis podpis funkcji do utworzenia
sesja prawidłową sesję do zainicjowanego wykresu
Zwroty
  • nową funkcję

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

Tworzy funkcję, budując nowy wykres.

functionBuilder musi zainicjować wykres funkcji z podanej instancji ERROR(/Ops) i zwrócić poprawną sygnaturę, która będzie używana do zasilania tensorów wejściowych i pobierania tensorów wyjściowych podczas wykonywania.

Funkcja będzie właścicielem nowego wykresu i sesji wynikowej. Dlatego funkcja musi być odpowiednio ujęta w blok try-with-resources, aby zagwarantować, że po odrzuceniu funkcji zostaną zwolnione wszystkie zasoby natywne. Na przykład:

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());
     }
   }
 }
 }

Parametry
Konstruktor funkcji konstruktor funkcji
Zwroty
  • nową funkcję

public static ConcreteFunction create (podpis podpisu , wykres wykresu )

Utwórz funkcję na podstawie podpisu i istniejącego wykresu.

Funkcja zachowa własność sesji użytej do uruchomienia wykresu, ale nie samego wykresu, co oznacza, że ​​jego żywotność może wykraczać poza zakres funkcji. Na przykład:

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
 }
 }

Parametry
podpis podpis funkcji do utworzenia
wykres prawidłowy i zainicjowany wykres
Zwroty
  • nową funkcję

publiczny wykres wykresu ()

Zwraca wykres tej funkcji

publiczny zapis pustej wartości (String eksportDir)

Eksportuj tę funkcję jako zapisany model.

Ta metoda jest wygodnym skrótem odpowiadającym SavedModel.exporter(exportDir).withFunction(this).export()

Parametry
eksportDir katalog, do którego ma zostać wyeksportowany zapisany model
Rzuca
Wyjątek IO jeśli zapisany model lub stan zmiennej nie mogą zostać zapisane na dysku

sesja publiczna sesja ()

Zwraca sesję użytą do wykonania wykresu podczas wywoływania tej funkcji

Ogólnie rzecz biorąc, użytkownik nie musi bezpośrednio obsługiwać sesji funkcji i zamiast tego polegać na call(Map) , aby wykonać wykres. Jednak w niektórych przypadkach może być konieczny bezpośredni dostęp do sesji, ponieważ zapewnia ona więcej opcji działania.

Zwroty
  • sesję funkcyjną

publiczny Podpis podpis ()

Zwraca sygnaturę tej funkcji

publiczny ciąg do ciągu ()