【发布时间】:2020-04-05 22:54:42
【问题描述】:
model = Sequential()
model.add(Embedding(input_dim=wordEmbeddings.shape[0], output_dim=wordEmbeddings.shape[1], input_length=n_in, weights=[wordEmbeddings], trainable=False, **zero_mask=True**))
model.add(Dropout(0.3))
model.add(Bidirectional(LSTM(200, return_sequences=True, recurrent_dropout=0.5, dropout=0.5, name='bilstm1')))
model.add(TimeDistributed(Dense(100, activation="relu")))
model.summary()
model.add(MaxPooling1D(pool_size=7, strides=1))
crf = CRF(n_out)
model.add(crf)
model.compile(optimizer="rmsprop", loss=crf_loss, metrics=[crf_viterbi_accuracy])
模型摘要
此模型运行良好。但是我得到了损失函数的负值。
所以我更改了嵌入层中的属性 zero_mask=True 并尝试训练模型。但后来我收到如下错误。
“屏蔽不支持 MaxPooling1D。”
对此的任何帮助都非常感谢。
【问题讨论】:
-
你试过
GlobalMaxPooling1D吗?由于您并没有真正使用 7 号长度的 7 号池......
标签: keras recurrent-neural-network masking named-entity-recognition crf