TypeError :(“关键字参数无法理解:”,“掩码”)

时间:2020-10-16 12:02:43

标签: tensorflow lstm

我想创建一个LSTM网络,该网络可以将两个输入作为填充序列阵列作为输入,将掩码阵列作为屏蔽输入。我写了如下代码:

def create_model():

#input 1 (pad sequence)
input_layer1 = Input(shape=(17640,1),name = 'input_layer')

#input 2 (mask)
input_layer2 = Input(shape=(17640,),name='input_mask')

#LSTM layer
LSTM_layer = LSTM(25,return_sequences=False,name = 'LSTM_layer',mask = input_layer2)(input_layer1)

#Dense layer
dense = Dense(50,activation='relu',kernel_initializer=he_normal(),kernel_regularizer=l2(0.0001),name = 'dense')(LSTM_layer)

#output layer
dense_1 = Dense(10, activation = 'softmax',name='dense_1')(dense)

#concat = concatenate([input_layer,input_mask])

model = Model([input_layer1],dense_1)

#compile
model.compile(loss='categorical_crossentropy', optimizer=keras.optimizers.Adam(lr=0.001,decay = 1e-4),metrics=[tf.keras.metrics.AUC()])

return model

但是我收到以下错误消息: TypeError :(“关键字参数无法理解:”,“掩码”) 调查错误的细节时说它收到了未知的关键字参数。我还调查了类似类型的错误,即在这些情况下关键字有所不同。这些问题的解决方案特定于该问题。有人可以帮我解决这个错误吗

1 个答案:

答案 0 :(得分:1)

mask参数不是构造函数的参数,它是调用参数,应具有维度[batch, timestamps]。这是一个调用参数,因为运行之间的掩码可能不同。换句话说,它应该看起来像这样:

LSTM_layer = LSTM(25, return_sequences=False, name = 'LSTM_layer')(input_layer1, mask = input_layer2)