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

Что такое сверточная нейронная сеть?

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

Теперь давайте вернемся к нашей теме, на изображениях ниже вы можете увидеть созданный экземпляр небольшой сети, и мы также загрузили ее сводку.

На изображении выше мы видим сводку модели, которую можно проверить, вызвав метод сводки, доступный в классе Model в TensorFlow. Теперь вопрос в том, что такое TensorFlow?

TensorFlow — это бесплатная программная библиотека с открытым исходным кодом для потоков данных и дифференцированного программирования для различных задач. Это символьная математическая библиотека, которая также используется для приложений машинного обучения, таких как нейронные сети.

Вот и все о TensorFlow

Теперь давайте перейдем к вычислению параметров в модели сверточной нейронной сети, при этом не забывайте о цитируемой формуле.

((пространственная ширина * пространственная высота) * шаг + уклон) * нет. фильтров

Что такое Страйд?

Шаг – это параметр фильтра нейронной сети, который изменяет количество движений на изображении или видео.

Теперь давайте начнем с первого слоя свертки, сводка показывает, что он имеет всего 320 параметров после обработки нашего ввода. Мы будем вычислять параметры, используя аргументы, как показано в нашей модели сверточной нейронной сети.
Я выбрал простую модель CNN для лучшего понимания, а теперь пора погрузиться в вычисления.

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

У нас нет. фильтров 32, заплаты свертки или ядра (3,3), шаг равен 1, затем значение bias равно 1. .

((3 * 3) * 1+ 1) * 32, мы получаем 320, что является общим числом. параметров, показанных в сводке модели, рассчитанной по первому слою.

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

Фильтры из предыдущего слоя становятся частью расчета в последующем слое.

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

Для второго слоя свертки Используя формулу, как указано выше, у нас есть пространственная ширина 3 и пространственная высота 3 такие же, как и раньше. , поэтому у нас есть участок 3x3, шаг, который составляет 32, то есть движение нашего участка, это 32, потому что мы не будем обрабатывать функции предыдущих слоев. Если вы думаете о том, что если мы это сделаем, наша модель может двигаться в направлении переобучения, тогда смещение такое же, как и раньше, равное 1. Теперь поместите значения в нашей формуле.

((3 * 3) *32 + 1) * 64)это первый шаг, на котором мы получаем общее количество параметров.

Давайте займемся математикой:

(3 * 3) *32 = 288 после добавления смещения 1 оно становится 289, в конце концов, чтобы получить окончательный результат, у нас будет скалярное произведение 289, а не . фильтров, то получаем 18 496.

Легко, верно? Теперь для третьего слоя свертки снова пропускаем слой максимального пула, и когда мы следуем некоторому методу в качестве второго слоя, мы получаем следующий результат. На этот раз наш шаг равен 64, в то время как все остальные параметры для нашего расчета такие же, как и раньше, поэтому без дальнейших церемоний мы применяем нашу формулу.

((3 * 3) * 64 + 1 ) = 36,928

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

Заботиться!

Улучшения

Я всегда ищу отзывы, поэтому, пожалуйста, оставьте любые предложения или рекомендации ниже.