Реализация общих сверточных слоев с тенорным потоком Кераса - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть сеть, в составе которой есть unet -подобная структура. Я хотел бы, чтобы сверточные слои распределялись между двумя входами. Пример моего кода:

conv_layer = Conv(parameters)
out1 = con_layer(input1)
out2 = con_layer(input2)

Создает ли эта часть два выхода, каждый из которых зависит только от соответствующего ввода и общих весов? Или объединяет входы и передает их из свертки? Одинаковы ли веса в двух вызовах этого слоя? Также вопрос по обучению. Когда речь идет о backpropagate, потери распространяются один раз из общих слоев? Есть ли изменения в обучении?

1 Ответ

0 голосов
/ 23 апреля 2020

Прежде всего, U- Net точно не имеет общего слоя. Он использует пропуск соединений и объединение для повторного использования объектов.

Общий слой выглядит примерно так

x --> F(x)
          ==> G(F(x),F(y))
y --> F(y) 

Создает ли эта часть два вывода, каждый из которых зависит только от соответствующий вход и общие веса?

  • Да, общий вес фиксирован для обоих входов, и выход зависит от каждого входа.

он объединяет входные данные и передает их из свертки?

  • Нет, он не выполняет никакой конкатенации. Даже два входа полностью независимы и не взаимодействуют напрямую - они проходят только через conv_layer.

Являются ли веса одинаковыми?

  • Да, веса общего слоя точно такие же.

Когда речь идет о обратном распространении, распространяется ли потеря один раз от общих слоев? Есть ли какие-либо изменения в обучении?

  • Не уверен, что вы имеете в виду, но веса будут обновлены для обоих входов, но в то же время. Если под изменением в обучении вы имеете в виду не относящийся к общему слою, то да.

Полезное чтение: http://neural.vision/blog/deep-learning/backpropagation-with-shared-weights/

https://datascience.stackexchange.com/questions/26755/cnn-how-does-backpropagation-with-weight-sharing-work-exactly

https://datascience.stackexchange.com/questions/27506/back-propagation-in-cnn

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