Как применить один полностью связанный слой к каждой точке изображения - PullRequest
0 голосов
/ 09 апреля 2019

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

Первые несколько слоев являются стандартными сверточными слоями, и на выходе из них есть d каналов, каждый из которых имеет форму изображения n x n.

Что я хочу сделать, так это использовать один плотный слой, чтобы отобразить этот тензор d x n x n на одно изображение размером n x n. Я хочу определить один плотный слой с размером входа d и размером вывода 1 и применить эту функцию к каждому «пикселю» на входе (с входами, взятыми по глубине между каналами).

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

Есть ли эффективный способ сделать это?

1 Ответ

0 голосов
/ 09 апреля 2019

То, что вы описываете, - это свертка 1x1 с глубиной вывода 1. Вы можете реализовать ее так же, как и остальные слои свертки.Возможно, вы захотите применить tf.squeeze впоследствии, чтобы удалить глубину, которая должна иметь размер 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...