Altifigence Academy

10 / 24 · Теория

im2col и умножение матриц

Для H=W=4,C=1 и ядра 3×3 без дополнения вычислите число исходных входных элементов, P,K и элементов расширенных окон.

Переформулируйте операцию

im2col разворачивает каждое входное окно в вектор для умножения матриц. Мы размещаем одно окно в каждой строке. Матрица A имеет P×K элементов, где P=HoWo и K=CRS. Развёрнутые веса образуют столбцы матрицы B формы K×M. Произведение AB имеет форму P×M. Другие соглашения размещают окна в столбцах, поэтому установите оси, а не выводите их из имени.

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

Разобранная матрица

Для [1,2,3;4,5,6;7,8,9] и окон 2×2 матрица A имеет строки [1,2,4,5], [2,3,5,6], [4,5,7,8] и [5,6,8,9]. Ядро [1,2;3,4] даёт столбец весов [1,2,3,4]. Четыре скалярных произведения — 37,47,67,77. Поэтому 4×4, умноженная на 4×1, даёт 4×1, обратно складываемую в выход 2×2.

Исходный вход содержит девять элементов; расширенная матрица — шестнадцать. Центральное значение пять появляется четыре раза, угловое один — один раз. Пространственное повторное использование становится дублированием в материализованном представлении. Один вектор весов повторно используется для всех четырёх окон. Вычислите P×K и сравните с C×H×W перед назначением хранения. Большая выходная область может сделать дублирование значительным.

При нескольких каналах разворачивайте окно и веса в одинаковом порядке c,r,s. Двухканальное окно 1×1 — [x0,x1]; переворот только каналов весов меняет результат. Начните с асимметричных значений каналов. Групповая свёртка формирует отдельные векторы групп вместо безразборного включения всех входных каналов.

Согласие с прямой моделью проверяет арифметические значения, а не физические передачи памяти или одновременную работу PE. Следующая глава генерирует эквивалентные окна из потока; последующее разбиение позволяет избежать хранения целого расширенного тензора. Записывайте размер промежуточной матрицы и дублирование вместе с выходными значениями, чтобы затраты отображения оставались видимыми.

Попробуйте сами

Для H=W=4,C=1 и ядра 3×3 без дополнения вычислите число исходных входных элементов, P,K и элементов расширенных окон.

Прочитать объяснение

Вход имеет шестнадцать элементов. Выход — 2×2, поэтому P=4 и K=9. Полная матрица окон имеет 36 элементов. Окна по запросу позволяют избежать хранения всех 36.

Выбор действует в этом браузере. Его можно изменить внизу страницы.