Плотный слой утяжеляет форму - PullRequest
0 голосов
/ 07 мая 2018

В модели со следующей частичной архитектурой: Model architecture in Keras

где у нас есть, скажем, слои Dense1 и Dense2 (полностью подключены).

Мне нужно получить вес моей уже обученной модели для Dense2, но форма, которую я получаю для этого слоя, (128,2048), что сбивает меня с толку, поскольку теоретическое объяснение этого слоя состоит в том, что он должен обеспечивать единственное значение для мой массив (здесь: 2048). Я печатаю веса Dense2 как:

    weights  =  model.layers[layer_idx].get_weights()

Разве я не вижу форму архитектуры? (Нет, 2048)

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Не каждый нейрон имеет вес, но каждое соединение нейронов. И если вы полностью соедините 128 нейронов с 2048, вы получите 128 x 2048 весов.

Вот почему у вас есть форма (128, 2048).

0 голосов
/ 07 мая 2018

Здесь во 2-м плотном слое имеется 2048 нейронов, и каждый нейрон связан с выходом предыдущего слоя. Таким образом, для одного нейрона в ней будет участвовать 128 предыдущих нейронов слоя.

y = w1*x1 + w2*x2 + .......... + w128*x128

итого (128 * 2048) = 262144 параметра с 2048 векторами смещения всего 264192 (262144 + 2048) параметров.

Спасибо

...