Размер карты признаков в сверточных нейронных сетях

Вывод: нажмите рассчитать

Формула:outputSize = (inputSize - kernelSize + 2 * padding) / stride + 1

Понимание размера карты признаков в свёрточных нейронных сетях

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

Формула

Размер карты признаков после сверточного слоя в CNN определяется с помощью следующей формулы:

outputSize = (inputSize - kernelSize + 2 * padding) / stride + 1

Вот разбивка каждого участвующего параметра:

Входные и выходные данные

Входные данные

Вывод

Пример из реальной жизни

Рассмотрите популярный случай использования, когда у вас есть входное изображение размером 224x224 пикселей. Вы применяете сверточный слой с размером ядра 3x3, паддингом 1 и шагом 1. Вот как вы вычисляете размер карты признаков:

inputSize: 224, kernelSize: 3, padding: 1, stride: 1

Подставляя эти значения в нашу формулу:

outputSize = (224 - 3 + 2 * 1) / 1 + 1 = 224

Полученная карта признаков все еще будет 224x224 пикселя.

Проверка данных

Для того чтобы этот расчет работал, все входные параметры должны быть больше нуля. Более того, убедитесь, что шаг является целым числом, которое равномерно делит измененный размер входа (inputSize - kernelSize + 2 * padding), в противном случае размер карты признаков не будет целым числом, и формула сломается.

Пример значений:

{

Резюме

Расчет размера карты признаков в свёрточных нейронных сетях имеет решающее значение для архитектуры модели и оптимизации. Поняв и правильно применяя формулу (размерВхода - размерЯдра + 2 * отступ) / шаг + 1, учёные-данных и инженеры могут разрабатывать более эффективные сети, улучшая производительность и эффективность.

Часто задаваемые вопросы (FAQ)

Почему используется заполнение?

Заполнение помогает контролировать пространственные размеры выходной карты признаков. Это особенно полезно, когда вы хотите сохранить размер входа в выходе.

Что происходит, если шаг больше одного?

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

Применима ли формула только к квадратным входным данным?

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

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

Tags: Машинное Обучение