Аннотация:
Современные архитектуры свёрточных нейронных сетей являются весьма ресурсозатратными, что ограничивает возможности их широкого практического применения. В статье предложена архитектура свёрточной нейронной сети, разделённой на аппаратную и программную части для увеличения производительности вычислений. Для реализации свёрточного слоя нейронной сети в аппаратной части использована модулярная арифметика с целью сокращения ресурсозатрат. Предложен численный метод квантования коэффициентов фильтров свёрточного слоя сети для минимизации влияния шума квантования на результат вычислений в системе остаточных классов и определения разрядности коэффициентов. Данный метод основан на масштабировании коэффициентов на фиксированное количество бит и округлении к большему и к меньшему. Используемые операции позволяют уменьшить ресурсы при аппаратной реализации за счёт простоты их выполнения. Все вычисления в свёрточном слое сети выполняются над числами в формате с фиксированной точкой. Программное моделирование с использованием Matlab 2017b показало, что свёрточная нейронная сеть с минимальным количеством слоёв может быть быстро и успешно обучена. Аппаратное моделирование с использованием field-programmable gate array Kintex7 xc7k70tfbg484-2 показало, что использование системы остаточных классов в свёрточном слое нейронной сети позволяет снизить аппаратные затраты на 32,6 % по сравнению с традиционным подходом, основанным на двоичной системе счисления. Результаты исследования могут быть применены при создании эффективных систем видеонаблюдения, для распознавания рукописного текста, лиц, объектов и местности.