ConcreteFunction

classe pública ConcreteFunction

Um gráfico que pode ser invocado como uma função única, com assinatura de entrada e saída.

Uma função também pode invocar um tf.function definido em SavedModelBundle .

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

Métodos Públicos

Tensor
chamada ( tensor tensor)
Invoca uma função com uma única entrada e saída.
Mapa<String, Tensor >
chamada (Map<String, Tensor > argumentos)
Invoca uma função.
vazio
fechar ()
Função concreta estática
criar ( assinatura , sessão de sessão )
Crie uma função a partir de uma assinatura e de uma sessão gráfica válida.
Função concreta estática
criar (Function<Ops, Assinatura > functionBuilder)
Cria uma função construindo um novo gráfico.
Função concreta estática
criar ( assinatura , gráfico gráfico)
Crie uma função a partir de uma assinatura e de um gráfico existente.
Gráfico
gráfico ()
Retorna o gráfico desta função
vazio
salvar (String exportDir)
Exporte esta função como um modelo salvo.
Sessão
sessão ()
Retorna a sessão usada para executar o gráfico ao chamar esta função

Em geral, um usuário não precisa lidar diretamente com a sessão de uma função e, em vez disso, contar com call(Map) para executar o gráfico.

Assinatura
assinatura ()
Retorna a assinatura desta função
Corda

Métodos herdados

Métodos Públicos

chamada de tensor público ( tensor tensor)

Invoca uma função com uma única entrada e saída.

O chamador é responsável por fechar todos os Tensores.

Parâmetros
tensor tensor de entrada
Devoluções
  • tensor de saída
Lança
IllegalArgumentException se houver vários parâmetros de entrada ou saída definidos na função

chamada pública Map<String, Tensor > (Map<String, Tensor > argumentos)

Invoca uma função.

O chamador é responsável por fechar todos os Tensores.

Parâmetros
argumentos lista de tensores a serem passados ​​na entrada para a função, mapeados por seu nome de assinatura
Devoluções
  • tensores de saída resultantes da execução da função, mapeados por seu nome de assinatura
Lança
IllegalArgumentException

fechamento de vazio público ()

public static ConcreteFunction create ( assinatura , sessão de sessão )

Crie uma função a partir de uma assinatura e uma sessão gráfica válida.

A função não será proprietária da sessão nem do seu gráfico, o que significa que seu tempo de vida pode se estender além do escopo da função. Portanto a função não precisa ser fechada após seu uso. Por exemplo:

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

Parâmetros
assinatura assinatura da função para criar
sessão uma sessão válida para um gráfico inicializado
Devoluções
  • uma nova função

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

Cria uma função construindo um novo gráfico.

O functionBuilder deve inicializar o gráfico da função a partir da instância ERROR(/Ops) fornecida e retornar uma assinatura válida que será usada para alimentar os tensores de entrada e buscar os tensores de saída na execução.

A função será a proprietária do novo gráfico e da sessão resultante. Portanto, a função deve ser incluída corretamente com um bloco try-with-resources para garantir que todos os recursos nativos serão liberados quando a função for descartada. Por exemplo:

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

Parâmetros
funçãoBuilder construtor de função
Devoluções
  • a nova função

public static ConcreteFunction create ( assinatura , gráfico gráfico)

Crie uma função a partir de uma assinatura e de um gráfico existente.

A função manterá a propriedade da sessão usada para executar o gráfico, mas não o gráfico em si, o que significa que o tempo de vida deste último pode se estender além do escopo da função. Por exemplo:

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

Parâmetros
assinatura assinatura da função para criar
gráfico um gráfico válido e inicializado
Devoluções
  • uma nova função

gráfico gráfico público ()

Retorna o gráfico desta função

salvamento público vazio (String exportDir)

Exporte esta função como um modelo salvo.

Este método é um atalho conveniente equivalente a SavedModel.exporter(exportDir).withFunction(this).export()

Parâmetros
exportDir diretório para onde exportar o modelo salvo
Lança
IOException se o modelo salvo ou o estado da variável não puder ser gravado no disco

sessão de sessão pública ()

Retorna a sessão usada para executar o gráfico ao chamar esta função

Em geral, um usuário não precisa lidar diretamente com a sessão de uma função e, em vez disso, contar com call(Map) para executar o gráfico. Mas em alguns casos, o acesso direto à sessão pode ser necessário, pois permite mais opções de execução.

Devoluções
  • a sessão de função

Assinatura pública ()

Retorna a assinatura desta função

String pública paraString ()