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 | |
Mapa<String, Tensor > | |
vazio | fechar () |
Função concreta estática | criar ( assinatura , sessão de sessão ) Crie uma função a partir de uma assinatura e uma sessão gráfica válida. |
Função concreta estática | |
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 | |
Assinatura | assinatura () Retorna a assinatura desta função |
Corda | toString () |
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 de 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 delimitada adequadamente por 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 do 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
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