我正在尝试将具有维度(样本,时间步长,特征)(即我的情况(500,128,200))的填充(带零)输入屏蔽到编码器LSTM
模型中。我希望模型理解这些是已填充的,因此不予考虑。以下是我的代码:-
encoder_inputs = Input(shape=(None, num_encoder_tokens))
x = layers.Embedding(input_dim=128, output_dim=200, mask_zero=True)(encoder_inputs)
encoder = Bidirectional(LSTM(latent_dim, return_state=True,input_shape=(timesteps, features)))(x)
encoder_outputs, f_hidden_state, f_cell_state, b_hidden_state, b_cell_state = encoder(encoder_inputs)
我说一个错误
输入0与双向图层4不兼容:预期ndim = 3,找到的ndim = 4
编辑:- 我通过引入稍微修改的方式摆脱了错误(但现在有一个新错误)。以下是带有错误的新代码:-
encoder_inputs = Input(shape=(None, num_encoder_tokens))
masking = layers.Masking(mask_value=0.0)(encoder_inputs)
encoder = Bidirectional(LSTM(latent_dim, return_state=True,input_shape=(timesteps, features)))(masking)
encoder_outputs, f_hidden_state, f_cell_state,b_hidden_state, b_cell_state = encoder(encoder_inputs)
我在上面的代码的最后一行遇到此错误:-
“列表”对象不可调用