Path: blob/master/site/pt-br/lite/guide/signatures.ipynb
25118 views
Copyright 2021 The TensorFlow Authors.
Assinaturas no TensorFlow Lite
O TensorFlow Lite tem suporte à conversão das especificações de entrada/saída de modelos do TensorFlow para o TensorFlow Lite. As especificações de entrada/saída são chamadas de "assinaturas", que podem ser especificadas ao compilar um SavedModel ou ao criar funções concretas.
As assinaturas no TensorFlow Lite contam com os seguintes recursos:
Especificam entradas e saídas do modelo convertido para TensorFlow Lite, respeitando as assinaturas do modelo do TensorFlow.
Permitem que um único modelo do TensorFlow Lite tenha suporte a diversos pontos de entrada.
A assinatura é composta por três componentes:
Inputs (entradas): faz o mapeamento de entradas do nome de entradas na assinatura para um tensor de entrada.
Outputs (saídas): faz o mapeamento de saídas do nome de saída na assinatura para um tensor de saída.
Signature Key (chave de assinatura): nome que identifica um ponto de entrada do grafo.
Configuração
Modelo de exemplo
Vamos supor que tenhamos duas tarefas, como codificação e decodificação, em um modelo do TensorFlow:
Pela perspectiva de assinatura, o modelo do TensorFlow acima pode ser resumido da seguinte forma:
Assinatura
Chave: encode
Entradas: {"x"}
Saída: {"encoded_result"}
Assinatura
Chave: decode
Entradas: {"x"}
Saída: {"decoded_result"}
Conversão de modelos com assinaturas
As APIs de conversão do TensorFlow Lite levam as informações de assinatura acima ao modelo convertido para TensorFlow Lite.
Essa funcionalidade de conversão está disponível em todas as APIs de conversão a partir do TensorFlow versão 2.7.0. Confira os exemplos de uso abaixo.
Usando um SavedModel
Usando um modelo do Keras
De funções concretas
Execução de assinaturas
As APIs de inferência do TensorFlow têm suporte a execuções baseadas em assinatura:
Acesso aos tensores de entrada/saída por meio dos nomes das entradas e saídas, especificadas pela assinatura.
Execução de cada ponto de entrada do grafo separadamente, identificado pela chave de assinatura.
Suporte ao procedimento de inicialização do SavedModel.
As vinculações das linguagens Java, C++ e Python já estão disponíveis. Confira os exemplos nas seções abaixo.
Java
C++
Python
Limitações conhecidas
Como o interpretador do TF Lite não garante a segurança de threads, os executadores de assinaturas do mesmo interpretador não serão executados simultaneamente.
Ainda não há suporte ao C/iOS/Swift.
Atualizações
Versão 2.7
Recurso de múltiplas assinaturas implementado.
Todas as APIs de conversão a partir da versão 2 geram modelos do TensorFlow Lite com assinaturas.
Versão 2.5
O recurso de assinaturas está disponível por meio da API de conversão
from_saved_model
.