Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Вес кластеризация

Поддержкой Arm ML технологической оснастки

В этом документе содержится обзор веса кластеризации, чтобы помочь вам определить, как он подходит с прецедентом.

обзор

Кластеризация, или совместное использование веса, уменьшает количество уникальных значений веса в модели, что приводит к выгодам для развертывания. Это первые группы вес каждого слоя в N кластеры, а затем делит центроид значения кластера для всех весов , принадлежащих к кластеру.

Этот метод приносит улучшения через сжатие модели. Будущая структура поддержка может разблокировать улучшения объема памяти, которые могут сделать огромную разницу для развертывания глубоких моделей обучения на встраиваемых системах с ограниченными ресурсами.

Мы экспериментировали с кластерными через видение и речевые задачи. Мы уже видели до 5x улучшения сжатия модели с минимальной потерей точности, как показывают результаты , представленные ниже.

Пожалуйста, обратите внимание, что кластеризация обеспечит уменьшенные преимущества для сверточных и плотных слоев, которые предшествуют партия нормализации слоя, а также в комбинации с на оси после обучения квантования.

Матрица совместимости API

Пользователи могут применять кластеризацию со следующим API:

  • Модель здание: tf.keras только с Sequential и функциональными моделями
  • TensorFlow версии: 1.x TF для версии 1.14+ и 2.x.
    • tf.compat.v1 с пакетом 2.X TF и tf.compat.v2 с пакетом 1.X TF не поддерживаются.
  • режим выполнения TensorFlow: как график и нетерпеливый

Полученные результаты

классификация изображения

Модель оригинал кластерный
Топ-1 точность (%) Размер сжатого .tflite (MB) конфигурация # Кластеров Топ-1 точность (%) Размер сжатого .tflite (MB)
MobileNetV1 71,02 14,96
Селективный (последние 3 Conv2D слои) 256, 256, 32 70,62 8,42
Полный (все слои Conv2D) 64 66,07 2,98
MobileNetV2 72,29 12,90
Селективный (последние 3 Conv2D слои) 256, 256, 32 72,31 7,00
Полный (все слои Conv2D) 32 69,33 2,60

Модели были подготовлены и испытаны на ImageNet.

Ключевое слово пятнистость

Модель оригинал кластерный
Топ-1 точность (%) Размер сжатого .tflite (MB) конфигурация # Кластеров Топ-1 точность (%) Размер сжатого .tflite (MB)
DS-CNN-L 95,03 1,5 Полный 32 94,71 0,3

Модели были подготовлены и испытаны на SpeechCommands v0.02.

  1. Сериализация модель Keras в .h5 файл
  2. Преобразование .h5 файл в .tflite используя TFLiteConverter.from_keras_model_file()
  3. Сжать .tflite файл в почтовый индекс

Примеры

В дополнении к весу кластеризации в примере Keras , смотрите примеры следующие:

  • Кластер веса модели CNN обученной на MNIST рукописных цифр классификации набора данных: код

Реализация веса кластеризация на основе глубокого сжатия: Compressing Deep Neural Networks С Обрезка, обученные квантование и кодирование Хаффмана бумаги . Смотрите глава 3, под названием Обученного Квантования и Sharing веса.