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

agrupamento de peso

Mantido pelo braço ML Tooling

Este documento fornece uma visão geral sobre clusters de peso para ajudar a determinar como ele se encaixa com o seu caso de uso.

Visão geral

Clustering, ou partilha de peso, reduz o número de valores de peso exclusivo de um modelo, que conduz a vantagens para implantação. É primeiros grupos os pesos de cada camada em grupos N, em seguida, compartilha valor centróide do agrupamento de todos os pesos pertencentes ao cluster.

Esta técnica traz melhorias através de compressão modelo. apoio futuro quadro pode desbloquear melhorias pegada de memória que podem fazer uma diferença crucial para a implantação de modelos de aprendizagem profundas em sistemas embarcados com recursos limitados.

Nós temos experimentado com agrupamento através tarefas de visão e da fala. Temos visto até 5x melhorias na compressão modelo com o mínimo de perda de precisão, como demonstrado pelos resultados apresentados a seguir.

Por favor note que o agrupamento proporcionará benefícios reduzidos para convolução e densas camadas que precedem uma camada de normalização em lotes, assim como em combinação com pós-formação de quantificao por eixo.

matriz de compatibilidade de API

Os usuários podem aplicar agrupamento com as seguintes APIs:

  • Construção de modelos: tf.keras apenas com Sequential e modelos funcionais
  • versões TensorFlow: TF 1.x para versões 1.14+ e 2.x.
    • tf.compat.v1 com um pacote TF 2.X e tf.compat.v2 com um pacote 1.X TF não são suportados.
  • modo de execução TensorFlow: tanto gráfico e ansioso

Resultados

classificação de imagens

Modelo Original agrupado
Top-1 precisão (%) Tamanho de .tflite comprimido (MB) Configuração # De clusters Top-1 precisão (%) Tamanho de .tflite comprimido (MB)
MobileNetV1 71,02 14,96
Selectivo (3 última camadas Conv2D) 256, 256, 32 70,62 8,42
(todas as camadas Conv2D) completos 64 66,07 2,98
MobileNetV2 72.29 12.90
Selectivo (3 última camadas Conv2D) 256, 256, 32 72,31 7.00
(todas as camadas Conv2D) completos 32 69.33 2.60

Os modelos foram treinados e testados em IMAGEnet.

manchas palavra-chave

Modelo Original agrupado
Top-1 precisão (%) Tamanho de .tflite comprimido (MB) Configuração # De clusters Top-1 precisão (%) Tamanho de .tflite comprimido (MB)
DS-CNN-L 95.03 1.5 Cheio 32 94,71 0,3

Os modelos foram treinados e testados em SpeechCommands v0.02.

  1. Serializar o modelo Keras em arquivo .h5
  2. Converter o arquivo .h5 em .tflite usando TFLiteConverter.from_keras_model_file()
  3. Compactar o arquivo .tflite em um zip

Exemplos

Além do agrupamento Peso em Keras exemplo , ver os seguintes exemplos:

  • Agrupar os pesos de um modelo CNN treinados sobre o conjunto de dados de classificação dígitos manuscrita MNIST: código

A implementação de peso agrupamento é baseado no Deep Compression: A compactação profunda Neural Networks com poda, treinado Quantização e Huffman Codificação de papel . Consulte o capítulo 3, intitulado treinado Quantização e compartilhamento de peso.