Как Convolution Layer берет 6 входов и дает 16 выходов? - PullRequest
0 голосов
/ 26 октября 2019

Мы пытаемся построить прямую сверточную нейронную сеть на FPGA. Конфигурация нашей сборки основана на архитектуре LeNet-5.

На первом уровне свертки проблем нет. Всего 1 вход (фото) и дает 6 выходов (6 карт характеристик) с 6 (5 * 5) фильтрами.

Кстати, мы натренировали нашу сеть и данные на spyder-tenorflow и т. Д.

Но на втором уровне свертки есть 6 входов (которые являются выходами первого максимального пула) и16 выходов с 16 (5 * 5 * 6) фильтром. Наш научный сотрудник сказал нам, что «у вас есть 6 входных и (5 * 5) фильтров с глубиной 6. Это означает, что каждый вход соответствует глубине фильтра соседних фильтров. В конце свертки вы можете суммировать всерезультаты умножения, чтобы у вас был только 1 выход для 1 фильтра. "

Но в каком процессе мы суммируем результаты умножения.

В python / spyder / tenorflow функция conv2d что-то делает, и мы получаем результаты. но в железе я должен знать, как это происходит.

Спасибо за помощь. Извините, мой английский.

Вот объяснение с изображением

1 Ответ

0 голосов
/ 27 октября 2019

найдите минутку и посмотрите на это:

http://cs231n.github.io/assets/conv-demo/index.html

Я нашел этот гиф очень полезным, когда узнал, как свертка рассчитывается и делается в деталях. Надеюсь, это поможет вам понять, как это происходит в «аппаратных средствах».

...