Esta página foi traduzida pela API Cloud Translation.
Switch to English

formação ciente de quantização

Mantido por TensorFlow modelo de otimização

Existem duas formas de quantização: quantização pós-treinamento e quantização formação consciente. Comece com quantização pós-treinamento , já que é mais fácil de usar, embora o treinamento ciente de quantização é muitas vezes melhor para a precisão do modelo.

Esta página fornece uma visão geral sobre a formação ciente de quantização para ajudar a determinar como ele se encaixa com o seu caso de uso.

Visão geral

Quantização formação ciente emula quantização em tempo inferência, criando um modelo que ferramentas jusante usará para produzir modelos realmente quantificados. Os modelos quantificados usar menor precisão (por exemplo, 8 bits em vez de 32-bit float), conduzindo a benefícios durante a implantação.

Implantar com quantização

Quantização traz melhorias através de compressão modelo e redução de latência. Com os padrões API, os psiquiatras tamanho do modelo de 4x, e normalmente vemos entre 1,5 - 4x melhorias na latência CPU nos backends testadas. Eventualmente, melhorias de latência pode ser visto em aceleradores de aprendizado de máquina compatíveis, como o EdgeTPU e NNAPI.

A técnica é utilizada na produção de fala, visão, texto e traduzir casos de uso. O código atualmente suporta um subconjunto destes modelos .

Experiência com quantização e hardware associado

Os utilizadores podem configurar os parâmetros de quantização (por exemplo, número de bits) e, até certo ponto, os algoritmos subjacentes. Com essas mudanças dos padrões API, não é caminho para a implantação não suportado.

APIs específicas para esta configuração são experimentais e não sujeito a compatibilidade com versões anteriores.

compatibilidade de API

Os usuários podem aplicar quantização com as seguintes APIs:

  • Construção de modelos: tf.keras apenas com Sequential e modelos funcionais.
  • versões TensorFlow: TF 2.x para tf-noite.
  • modo de execução TensorFlow: execução ansioso

É em nosso roteiro para adicionar suporte nas seguintes áreas:

  • construção de modelos: esclarecer como Models subclasse têm limitado ou nenhum apoio
  • Formação distribuídos: tf.distribute

matriz de suporte geral

O suporte está disponível nas seguintes áreas:

  • Cobertura Modelo: modelos usando camadas na lista de autorizações , BatchNormalization quando segue camadas Conv2D e DepthwiseConv2D e, em casos limitados, Concat .
  • A aceleração de hardware: os nossos padrões de API são compatíveis com aceleração em EdgeTPU, NNAPI e backends TFLite, entre outros. Veja a ressalva no roteiro.
  • Implantar com quantização: quantização única por eixo para camadas convolucionais, não quantização per-tensor, é actualmente suportada.

É em nosso roteiro para adicionar suporte nas seguintes áreas:

  • cobertura Modelo: estendido para incluir RNN / LSTMs e apoio geral Concat.
  • A aceleração de hardware: garantir o conversor TFLite pode produzir modelos full-inteiros. Veja esta questão para mais detalhes.
  • Experimentar com os casos de uso de quantização:
    • Experimentar com algoritmos de quantização que as camadas período Keras ou exigir a etapa de treinamento.
    • Estabilizar APIs.

Resultados

classificação de imagens com ferramentas

Modelo Não quantizado Top-1 Precisão Quantificado precisão de 8 bits
MobilenetV1 224 71,03% 71,06%
ResNet v1 50 76,3% 76,1%
MobilenetV2 224 70,77% 70,01%

Os modelos foram testados em IMAGEnet e avaliadas em ambos TensorFlow e TFLite.

classificação de imagens para a técnica

Modelo Não quantizado Top-1 Precisão 8 bits Quantificado Precisão
Nasnet-Mobile 74% 73%
ResNet-v2 50 75,6% 75%

Os modelos foram testados em IMAGEnet e avaliadas em ambos TensorFlow e TFLite.

Exemplos

Além do exemplo de treinamento consciente quantização , consulte os seguintes exemplos:

  • Modelo CNN na tarefa manuscrita MNIST classificação dígitos com quantização: código

Para o fundo em algo semelhante, consulte a quantização e Formação de Redes Neurais para Integer-Aritmética-Only Inferência eficiente de papel . Este artigo apresenta alguns conceitos que este uso da ferramenta. A aplicação não é exactamente a mesma, e existem conceitos adicionais utilizados nesta ferramenta (por exemplo, de quantização-eixo PER).