Пакетная нормализация в CNN - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь создать CNN на python без каких-либо фреймворков (таких как PyTorch, Tensorflow, Keras и т. Д.). Почти сделано, но BatchNorm совсем нет. У меня есть несколько вопросов. Должен ли я использовать BatchNorm для слоя Convolution Layer или только для слоя F C (Dense)? И ссылаясь на: https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/batch_norm_layer.html. в BatchNorm Вперед и назад:

Выходные данные уровня пакетной нормы имеют параметры являются. Эти параметры будут изучены, чтобы наилучшим образом представлять ваши активации. Эти параметры позволяют получить коэффициент обучения (масштаб и сдвиг). Теперь суммируем операции:

https://i.stack.imgur.com/win2p.png Уровень пакетной нормы используется после линейных слоев (ie: F C, конв) и до нелинейных слоев (рэлу). На самом деле существует 2 реализации пакетной нормы, одна для слоя F C, а другая для конвективных слоев (Пространственная пакетная норма). Хорошая новость заключается в том, что пространственная норма пакета просто вызывает нормальную пакетную норму после некоторого изменения формы.

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

https://i.stack.imgur.com/kqOtH.png

И в этом блоке у меня есть вопрос, что точно dX и dOut (dA и dZ)?

Это остановило меня. ; (

...