Python 在Keras elmo中,嵌入层有0个参数?这正常吗?

Python 在Keras elmo中,嵌入层有0个参数?这正常吗?,python,tensorflow,keras,neural-network,nlp,Python,Tensorflow,Keras,Neural Network,Nlp,所以我在我的模型中使用了GloVe,它起了作用,但现在我改为Elmo(参考GitHub上的Keras代码 但是,当我打印model.summary时,我在ELMo嵌入层中得到了0个参数,这与我使用手套时不同这正常吗?如果不正常,请告诉我我做错了什么 使用手套,我获得了超过2000万个参数 审判: 注意:我尝试将TF Hub Elmo与Keras代码一起使用,但输出始终是2D张量[即使我将其更改为“Elmo”设置和“LSTM”而不是默认值],因此我无法与POS_嵌入层连接。我尝试了重塑,但最终得

所以我在我的模型中使用了GloVe,它起了作用,但现在我改为Elmo(参考GitHub上的Keras代码

但是,当我打印model.summary时,我在ELMo嵌入层中得到了0个参数,这与我使用手套时不同这正常吗?如果不正常,请告诉我我做错了什么 使用手套,我获得了超过2000万个参数

审判:
注意:我尝试将TF Hub Elmo与Keras代码一起使用,但输出始终是2D张量[即使我将其更改为“Elmo”设置和“LSTM”而不是默认值],因此我无法与POS_嵌入层连接。我尝试了重塑,但最终得到了相同的问题总参数0。

来自TF Hub描述(),单个单词的嵌入是不可训练的。只有嵌入层和LSTM层的加权和是可训练的。因此,您应该在ELMo级别获得4个可训练参数

我能够使用中定义的类获得可训练参数。该示例仅提供了一个类,其中输出为默认层,每个输入示例(本质上是文档/句子编码器)的1024个向量。要访问每个单词的嵌入(elmo层),需要进行一些更改,如中所示:

您可以将ElmoEmbeddingLayer与POS层堆叠起来。
作为更一般的示例,可以使用1D ConvNet模型中的ELMo嵌入进行分类:

elmo_input_layer = Input(shape=(None, ), dtype="string")
elmo_output_layer = ElmoEmbeddingLayer()(elmo_input_layer)

conv_layer = Conv1D(
    filters=100,
    kernel_size=3,
    padding='valid',
    activation='relu',
    strides=1)(elmo_output_layer)

pool_layer = GlobalMaxPooling1D()(conv_layer)
dense_layer = Dense(32)(pool_layer)
output_layer = Dense(1, activation='sigmoid')(dense_layer)

model = Model(
    inputs=elmo_input_layer,
    outputs=output_layer)
model.summary()
模型摘要如下所示:

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_62 (InputLayer)        (None, None)              0         
_________________________________________________________________
elmo_embedding_layer_13 (Elm (None, None, 1024)        4         
_________________________________________________________________
conv1d_46 (Conv1D)           (None, None, 100)         307300    
_________________________________________________________________
global_max_pooling1d_42 (Glo (None, 100)               0         
_________________________________________________________________
dense_53 (Dense)             (None, 32)                3232      
_________________________________________________________________
dense_54 (Dense)             (None, 1)                 33        
=================================================================
Total params: 310,569
Trainable params: 310,569
Non-trainable params: 0
_________________________________________________________________
elmo_input_layer = Input(shape=(None, ), dtype="string")
elmo_output_layer = ElmoEmbeddingLayer()(elmo_input_layer)

conv_layer = Conv1D(
    filters=100,
    kernel_size=3,
    padding='valid',
    activation='relu',
    strides=1)(elmo_output_layer)

pool_layer = GlobalMaxPooling1D()(conv_layer)
dense_layer = Dense(32)(pool_layer)
output_layer = Dense(1, activation='sigmoid')(dense_layer)

model = Model(
    inputs=elmo_input_layer,
    outputs=output_layer)
model.summary()
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_62 (InputLayer)        (None, None)              0         
_________________________________________________________________
elmo_embedding_layer_13 (Elm (None, None, 1024)        4         
_________________________________________________________________
conv1d_46 (Conv1D)           (None, None, 100)         307300    
_________________________________________________________________
global_max_pooling1d_42 (Glo (None, 100)               0         
_________________________________________________________________
dense_53 (Dense)             (None, 32)                3232      
_________________________________________________________________
dense_54 (Dense)             (None, 1)                 33        
=================================================================
Total params: 310,569
Trainable params: 310,569
Non-trainable params: 0
_________________________________________________________________