tensorflow - TypeError:('关键字参数不理解:','掩码')
问题描述
我想创建 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: ('Keyword argument not understand:', 'mask') 查看错误的详细信息,它说它收到了未知的关键字参数。我还研究了类似类型的错误,即在这些情况下关键字不同。解决方案是针对问题的。有人可以帮我解决这个错误吗
解决方案
mask
参数不是构造函数的参数,它是一个调用参数,应该有维度[batch, timestamps]
。这是一个调用参数,因为掩码在运行之间可能不同。换句话说,它应该是这样的:
LSTM_layer = LSTM(25, return_sequences=False, name = 'LSTM_layer')(input_layer1, mask = input_layer2)
推荐阅读
- r - 混合 ddply 和 interval 时出错
- python - 无法创建涉及其他功能的列表
- sql - 如何加快sql查询执行速度?
- vaadin - vaadin router litElement 项目中的更改页面
- iis - 如何在具有 SSR 优势的 IIS 上部署下一个 js 应用程序?
- elasticsearch - 用于查询 DSL 的 Elasticsearch Rest 客户端
- python - opencv-python 和 opencv-contrib-python 的区别
- typescript - 从枚举的 const 创建联合类型
- go - 如何检查响应标头是否包含某个字符串
- r - 如何对R中两个不相等向量的值求和?