Ошибка в обучении LSTM с маскирующим слоем

#python #tensorflow #keras #deep-learning #lstm

Вопрос:

Я пытаюсь использовать маскирующий слой с фреймворком кодер-декодер в рамках модели LSTM. Однако при введении маскирующего слоя я получаю следующую ошибку:

 ValueError: Can not squeeze dim[1], expected a dimension of 1, got 8 for '{{node binary_crossentropy/weighted_loss/Squeeze}} = Squeeze[T=DT_FLOAT, squeeze_dims=[-1]](Cast_1)' with input shapes: [?,8].
 

Обучение проходит совершенно нормально без маскирующего слоя, поэтому я не могу понять, почему введение маскирующего слоя изменяет ожидаемую форму вывода для функции binary_crossentropy loss.

Это краткое описание модели в том виде, в каком я ее сейчас использую:

 Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
future_inputs (InputLayer)      [(None, 8, 26)]      0                                            
__________________________________________________________________________________________________
past_inputs (InputLayer)        [(None, 8, 89)]      0                                            
__________________________________________________________________________________________________
masking_36 (Masking)            (None, 8, 26)        0           future_inputs[0][0]              
__________________________________________________________________________________________________
lstm_77 (LSTM)                  [(None, 16), (None,  6784        past_inputs[0][0]                
__________________________________________________________________________________________________
lstm_78 (LSTM)                  (None, 8, 16)        2752        masking_36[0][0]                 
                                                                 lstm_77[0][1]                    
                                                                 lstm_77[0][2]                    
__________________________________________________________________________________________________
dropout_35 (Dropout)            (None, 8, 16)        0           lstm_78[0][0]                    
__________________________________________________________________________________________________
dense_105 (Dense)               (None, 8, 16)        272         dropout_35[0][0]                 
__________________________________________________________________________________________________
dense_106 (Dense)               (None, 8, 8)         136         dense_105[0][0]                  
__________________________________________________________________________________________________
dense_107 (Dense)               (None, 8, 1)         9           dense_106[0][0]                  
==================================================================================================
Total params: 9,953
Trainable params: 9,953
Non-trainable params: 0
__________________________________________________________________________________________________