Se usó la API de Cloud Translation para traducir esta página.
Switch to English

agrupación de peso

Propiedad de brazo ML Herramientas

Este documento proporciona una visión general sobre la agrupación de peso para ayudar a determinar cómo se inserta en su caso de uso.

Visión general

La agrupación, o el uso compartido de peso, reduce el número de valores de peso en un modelo único, con el consiguiente beneficio para el despliegue. Se primeros grupos los pesos de cada capa en N grupos, a continuación, comparte valor centroide del cluster para todos los pesos que pertenecen a la agrupación.

Esta técnica aporta mejoras a través de la compresión de modelo. Soporte para la infraestructura futuro puede desbloquear mejoras huella de memoria que pueden hacer una diferencia crucial para la implementación de modelos de aprendizaje profundas en los sistemas embebidos con recursos limitados.

Hemos experimentado con la agrupación a través de las tareas de visión y el habla. Hemos visto hasta 5 veces más mejoras en la compresión de modelo con una mínima pérdida de precisión, como lo demuestran los resultados se presentan a continuación.

Tenga en cuenta que la agrupación proporcionará beneficios reducidos para las capas densas de convolución y que preceden a una capa de carga de normalización, así como en combinación con la cuantificación posterior a la formación por eje.

matriz de compatibilidad API

Los usuarios pueden aplicar agrupación con las siguientes API:

  • La construcción de modelos: tf.keras sólo con modelos funcionales y secuencial
  • TensorFlow versiones 1.x: TF para las versiones 1.14+ y 2.x.
    • tf.compat.v1 con un paquete TF 2.X y tf.compat.v2 con un paquete 1.X TF no son compatibles.
  • modo de ejecución TensorFlow: tanto gráfico y ansiosos

resultados

la clasificación de imágenes

Modelo Original agrupado
Top-1 exactitud (%) Tamaño de .tflite comprimido (MB) Configuración # De clusters Top-1 exactitud (%) Tamaño de .tflite comprimido (MB)
MobileNetV1 71.02 14.96
Selectivo (última 3 capas Conv2D) 256, 256, 32 70.62 8.42
(todas las capas Conv2D) completos 64 66.07 2.98
MobileNetV2 72.29 12.90
Selectivo (última 3 capas Conv2D) 256, 256, 32 72.31 7.00
(todas las capas Conv2D) completos 32 69.33 2.60

Los modelos fueron entrenados y evaluados en IMAGEnet.

manchado palabra clave

Modelo Original agrupado
Top-1 exactitud (%) Tamaño de .tflite comprimido (MB) Configuración # De clusters Top-1 exactitud (%) Tamaño de .tflite comprimido (MB)
DS-CNN-L 95.03 1.5 Completo 32 94.71 0.3

Los modelos fueron entrenados y evaluados en SpeechCommands v0.02.

  1. Serializar el modelo Keras en el archivo .h5
  2. Convertir el archivo .h5 en .tflite usando TFLiteConverter.from_keras_model_file()
  3. Comprimir el archivo .tflite en un zip

Ejemplos

Además de la agrupación de peso en el ejemplo Keras , consulte los siguientes ejemplos:

  • Agrupar los pesos de un modelo CNN entrenados en el conjunto de datos MNIST clasificación dígitos manuscrita: Código

La implementación de peso agrupación se basa en la compresión profunda: Compresión Profunda Redes Neuronales con la poda, entrenados Cuantificación y codificación Huffman de papel . Véase el capítulo 3, titulado Formado Cuantificación y Peso Compartir.