Как я могу использовать dropout в Conv Layer для удаления карт активации в тензорном потоке? - PullRequest
1 голос
/ 19 марта 2019

Я пытаюсь добавить выпадение в сверточных слоях (хотя кажется, что люди не часто это делают).

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

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

1 Ответ

0 голосов
/ 19 марта 2019

На самом деле вы можете сделать это с помощью доступных выпадающих функций через аргумент noise_shape. Например. используя layers API:

x = tf.layers.dropout(x, noise_shape=[batch_size, 1, 1, features])

Это будет для 2D свертки и channels_last формата. Мы генерируем только одно значение шума для ширины / высоты изображения, которое будет транслироваться по размерам изображения. Однако мы по-прежнему генерируем разные значения шума для каждой карты объекта / активации.

...