小编Amb*_*kar的帖子

如何将注意力层添加到 Bi-LSTM

我正在开发一个 Bi-LSTM 模型并想为其添加一个注意力层。但我不知道如何添加它。

我当前的模型代码是

model = Sequential()
model.add(Embedding(max_words, 1152, input_length=max_len, weights=[embeddings]))
model.add(BatchNormalization())
model.add(Activation('tanh'))
model.add(Dropout(0.5))
model.add(Bidirectional(LSTM(32)))
model.add(BatchNormalization())
model.add(Activation('tanh'))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))
model.summary()
Run Code Online (Sandbox Code Playgroud)

模型摘要是

Model: "sequential_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
embedding_1 (Embedding)      (None, 1152, 1152)        278396928 
_________________________________________________________________
batch_normalization_1 (Batch (None, 1152, 1152)        4608      
_________________________________________________________________
activation_1 (Activation)    (None, 1152, 1152)        0         
_________________________________________________________________
dropout_1 (Dropout)          (None, 1152, 1152)        0         
_________________________________________________________________
bidirectional_1 (Bidirection (None, 64)                303360    
_________________________________________________________________
batch_normalization_2 (Batch (None, 64)                256       
_________________________________________________________________
activation_2 (Activation)    (None, 64)                0         
_________________________________________________________________
dropout_2 (Dropout) …
Run Code Online (Sandbox Code Playgroud)

nlp machine-learning python-3.x keras tensorflow

14
推荐指数
1
解决办法
4521
查看次数

在 Keras 嵌入层中使用 BERT 嵌入

我想在 LSTM 的嵌入层中使用 BERT 词向量嵌入,而不是通常的默认嵌入层。我有什么办法可以做到吗?

nlp embedding python-3.x keras bert-language-model

6
推荐指数
1
解决办法
8749
查看次数

为 Seq2Seq 模型添加注意力层

我已经构建了编码器-解码器的 Seq2Seq 模型。我想为其添加一个注意力层。我尝试通过此添加注意力层,但没有帮助。

这是我最初的代码,没有注意

# Encoder
encoder_inputs = Input(shape=(None,))
enc_emb =  Embedding(num_encoder_tokens, latent_dim, mask_zero = True)(encoder_inputs)
encoder_lstm = LSTM(latent_dim, return_state=True)
encoder_outputs, state_h, state_c = encoder_lstm(enc_emb)
# We discard `encoder_outputs` and only keep the states.
encoder_states = [state_h, state_c]

# Set up the decoder, using `encoder_states` as initial state.
decoder_inputs = Input(shape=(None,))
dec_emb_layer = Embedding(num_decoder_tokens, latent_dim, mask_zero = True)
dec_emb = dec_emb_layer(decoder_inputs)
# We set up our decoder to return full output sequences,
# and to return internal states …
Run Code Online (Sandbox Code Playgroud)

nlp python-3.x machine-translation keras tensorflow

5
推荐指数
1
解决办法
1359
查看次数

如何存储词向量嵌入?

0

我正在使用 BERT Word Embeddings 进行带有 3 个标签的句子分类任务。我正在使用 Google Colab 进行编码。我的问题是,由于我每次重新启动内核时都必须执行嵌入部分,有没有办法在生成这些词嵌入后保存它?因为,生成这些嵌入需要很多时间。

我用来生成 BERT Word Embeddings 的代码是 -

[get_features(text_list[i]) for text_list[i] in text_list]
Run Code Online (Sandbox Code Playgroud)

在这里,gen_features 是一个函数,它为我的列表 text_list 中的每个 i 返回词嵌入。

我读到将嵌入转换为凹凸不平的张量,然后使用 np.save 可以做到。但我实际上不知道如何编码。

请帮忙。

nlp python-3.x keras word-embedding bert-language-model

2
推荐指数
1
解决办法
1677
查看次数