В цифровых аппаратных средствах числа хранятся в двоичных словах. Двоичное слово - это последовательность битов фиксированной длины (1 и 0). Тип данных определяет, как аппаратные компоненты или программные функции интерпретируют эту последовательность 1 и 0. Числа представлены в виде масштабированных целых чисел (обычно называемых фиксированными точками) или типов данных с плавающей точкой.
Большинство предварительно обученных нейронных сетей и нейронных сетей, обученных с использованием Deep Learning Toolbox™, используют типы данных с плавающей запятой с одной точностью. Даже небольшие обученные нейронные сети требуют значительного объема памяти и оборудования, которое может выполнять арифметику с плавающей запятой. Эти ограничения могут препятствовать развертыванию возможностей глубокого обучения на маломощных микроконтроллерах и FPGA.
С помощью пакета поддержки библиотеки квантования модели Deep Learning Toolbox можно квантовать сеть, используя 8-битные масштабированные целочисленные типы данных.
Квантование нейронной сети требует GPU, пакета поддержки GPU Coder™ Interface for Deep Learning Libraries и пакета поддержки Deep Learning Toolbox Model Quantization Library. Для использования графического процессора требуется графический процессор NVIDIA ® с поддержкой CUDA ® с вычислительными возможностями 6.1, 6.3 или выше.
Масштабированные 8-битные целочисленные типы данных имеют ограниченную точность и диапазон по сравнению с типами данных с плавающей запятой с одинарной точностью. Существует несколько числовых соображений при преобразовании числа из большего типа данных с плавающей запятой в меньший тип данных фиксированной длины.
Потеря точности: потеря точности является ошибкой округления. При потере точности значение округляется до ближайшего числа, представляемого типом данных. В случае галстука округляется:
Положительные числа к ближайшему представимому значению в направлении положительной бесконечности.
Отрицательные числа до ближайшего представимого значения в направлении отрицательной бесконечности.
В MATLAB ® этот тип округления можно выполнить с помощью round функция.
Подземный глубинный поток: Подземный глубинный поток - тип потери точности. Неполные потоки возникают, когда значение меньше наименьшего значения, представляемого типом данных. Когда это происходит, значение насыщается до нуля.
Переполнение: Если значение больше, чем наибольшее значение, которое может представлять тип данных, происходит переполнение. При переполнении значение достигает наибольшего значения, представляемого типом данных.
Используйте приложение Deep Network Quantizer для сбора и визуализации динамических диапазонов весов и смещений слоев свертки и полностью соединенных слоев сети, а также активизаций всех уровней в сети. Приложение назначает масштабированный 8-битный целочисленный тип данных для весов, смещений и активаций уровней свертки сети. Приложение отображает гистограмму динамического диапазона для каждого из этих параметров. Ниже описаны способы создания этих гистограмм.
Учтите следующие значения, зарегистрированные для параметра во время работы в сети.

Найдите идеальное двоичное представление каждого зарегистрированного значения параметра.
Старший бит (MSB) является самым левым битом двоичного слова. Этот бит вносит наибольший вклад в значение числа. MSB для каждого значения выделяется желтым цветом.

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

Отображение счетчиков MSB каждого битового местоположения в виде карты тепловыделения. В этой тепловой карте более темные синие области соответствуют большему количеству MSB в битовом местоположении.

Программное обеспечение назначает тип данных, который может представлять битовые местоположения, фиксирующие большую часть информации. В этом примере программное обеспечение выбирает тип данных, который представляет биты от 23 до 2-3. Для представления сигнатуры значения требуется дополнительный знаковый бит.

После назначения типа данных удаляются все биты вне этого типа данных. Из-за назначения меньшего типа данных фиксированной длины для значений, которые не могут быть представлены типом данных, могут возникать потери точности, переполнение и неполный поток.

В этом примере значение 0,03125 страдает от недостаточного потока, поэтому квантованное значение равно 0. Значение 2.1 имеет некоторую потерю точности, поэтому квантованное значение равно 2,125. Значение 16.250 больше, чем наибольшее представимое значение типа данных, поэтому это значение переполняется, и квантованное значение насыщается до 15.874.

Приложение Deep Network Quantizer отображает эту гистограмму тепловой карты для каждого обучаемого параметра в слоях свертки и полностью соединенных слоях сети. Серые области гистограммы показывают биты, которые не могут быть представлены типом данных.
