Я работаю с этой реализацией и иерархической сетью внимания к классификации документов. Аналогично автору, я хочу использовать слой Embedding с обучаемыми параметрами. Проблема в том, что слой TimeDistributed
(строка 186) будет воспроизводить обучаемые параметры. Это приводит к огромному набору параметров для обучения. В задаче, над которой я работаю, я получаю более 500M только на этот слой. Если я отключаю обучаемое условие до False
, то число обучаемых параметров уменьшается до нормальных значений.
Я считаю, что проблема в том, что слой TimeDistributed
копирует матрицу встраивания по всей цепочке (как и должно быть). Но как я могу установить модель для использования фиксированной матрицы встраивания?
Layer (type) Output Shape Param # Connected to
==================================================================================================
main_input (InputLayer) (None, 20, 40) 0
__________________________________________________________________________________________________
time_distributed_1 (TimeDistrib (None, 20, 512) 543574704 main_input[0][0]
__________________________________________________________________________________________________
bidirectional_2 (Bidirectional) (None, 20, 512) 1574912 time_distributed_1[0][0]
__________________________________________________________________________________________________
attention_with_context_2 (Atten (None, 512) 263168 bidirectional_2[0][0]
__________________________________________________________________________________________________
dense_out_dom (Dense) (None, 21) 10773 attention_with_context_2[0][0]