Keras Сверточный слой с ядрами, инициализированными одинаково, согласно предопределенному инициализатору? - PullRequest
0 голосов
/ 25 января 2019

Возможно ли в Keras создать сверточный слой (Conv2D) таким образом, чтобы ядра инициализировались в соответствии с инициализатором (например, he_normal, glorot_uniform и т. Д.), Но создавались одинаковыми для каждого ядро?

Другими словами, я хотел бы инициализировать одно из ядер, используя kernel_initializer='he_normal', а затем скопировать и использовать эту инициализированную весовую матрицу для инициализации всех других ядер только в этом слое.

В полупсевдокодовом режиме это (похоже на концепцию) на то, что я ищу:

n_filters = 64

x = Conv2D(1, 3,... kernel_initializer='he_normal')

he_normal_kernel = *the kernel weight matrix that was just created*  #copy kernel weight matrix 
he_normal_kernels = he_normal_kernel * n_filters #make n_filters copies of that matrix

x = Conv2D(n_filters, 3,... kernel_initializer=he_normal_kernels) # use those as the initialization of our convolutional layer

Я абсолютно беспристрастен к , как реализовать это, до тех пор, пока он работает как задумано.

Пока мы здесь, есть ли какие-то внутренние теоретические причины, по которым это может быть плохой идеей?

Спасибо!

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