创建ELMo嵌入时我们可以设置句子的最大长度吗?

问题描述

我要从大量的句子创建ELMO嵌入,以防止出现内存问题,我以10,000的块传递句子,然后将它们连接起来,但是问题是每10,000,它从该10,000组内的句子,而其他组块则有所不同。我想在创建ELMo嵌入时设置句子修复的最大长度。任何建议将不胜感激?

elmo = hub.Module("https://tfhub.dev/google/elmo/3",trainable=True)


def ELMoEmbedding(x):
    embeddingss=elmo(tf.squeeze(tf.cast(x,tf.string)),signature="default",as_dict=True)["elmo"]
    with tf.Session() as sess:
      sess.run(tf.global_variables_initializer())
      sess.run(tf.tables_initializer())
      return sess.run(embeddingss)


list_train = [X_train[i:i+10000] for i in range(0,len(X_train),10000)]
elmo_train = [ELMoEmbedding(x) for x in list_train]

假定前10,000个句子的形状为(10,000,85,1024),而第二组句子的形状为(10,105,1024)。

在我的情况下,他们是否有办法将此维度固定为所有句子的最大长度?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)