Path: blob/master/site/pt-br/model_optimization/guide/quantization/training_example.ipynb
25118 views
Copyright 2020 The TensorFlow Authors.
Exemplo de treinamento consciente de quantização no Keras
Visão geral
Bem-vindo ao exemplo completo de treinamento consciente de quantização.
Outras páginas
Para uma introdução sobre o que é o treinamento consciente de quantização e para determinar se você deve usá-lo (incluindo a compatibilidade dele), veja a página de visão geral.
Para encontrar rapidamente as APIs necessárias para seu caso de uso (além de quantizar um modelo inteiro de 8 bits), veja o guia completo.
Resumo
Neste tutorial, você:
Treinará um modelo
tf.keras
para o MNIST do zero.Ajustará o modelo ao aplicar a API de treinamento consciente de quantização, verá a exatidão e exportará um modelo consciente de quantização.
Usará o modelo para criar um modelo realmente quantizado para o back-end do TFLite.
Verá a persistência da exatidão no TFLite e um modelo 4x menor. Para conferir os benefícios da latência em dispositivos móveis, teste os exemplos no repositório de apps do TFLite.
Configuração
Treine um modelo para o MNIST sem o treinamento consciente de quantização
Clone e ajuste o modelo pré-treinado com o treinamento consciente de quantização
Defina o modelo
Aplique o treinamento consciente de quantização ao modelo inteiro e veja isso no resumo do modelo. Todas as camadas agora têm o prefixo "quant".
Observe que o modelo resultante é consciente de quantização, mas não quantizado (por exemplo, os pesos são float32 em vez de int8). As seções seguintes mostram como criar um modelo quantizado a partir do consciente de quantização.
No guia completo, você pode ver como quantizar algumas camadas para melhorar a exatidão do modelo.
Treine e compare o modelo com a referência
Para mostrar os ajustes após o treinamento do modelo por apenas uma época, use o treinamento consciente de quantização em um subconjunto dos dados de treinamento.
Nesse exemplo, há pouca ou nenhuma perda na exatidão do teste após o treinamento consciente de quantização, em comparação com a referência.
Crie um modelo quantizado para o back-end do TFLite
Depois disso, você realmente tem um modelo quantizado com pesos int8 e ativações uint8.
Verá a persistência da exatidão do TF para o TFLite
Defina uma função helper para avaliar o modelo do TFLite com o dataset de teste.
Avalie o modelo quantizado e veja se a exatidão do TensorFlow persiste no back-end do TFLite.
Veja se o modelo está 4x menor com a quantização
Crie um modelo do TFLite float e veja se o modelo do TFLite quantizado está 4x menor.
Conclusão
Neste tutorial, você viu como criar modelos conscientes de quantização com a API de Kit de ferramentas para quantização de modelos do TensorFlow e, em seguida, como quantizar modelos para o back-end do TFLite.
Você viu o benefício da redução do tamanho do modelo em 4x para o MNIST, com uma diferença mínima na exatidão. Para conferir os benefícios da latência em dispositivos móveis, teste os exemplos no repositório de apps do TFLite.
Recomendamos que você teste essa nova capacidade que pode ser especialmente importante para a implantação em ambientes com recursos limitados.