标签: elmo

在简单的colab教程中使用ELMo交换gnews

我正在研究这个colab笔记本:

https://colab.research.google.com/github/tensorflow/hub/blob/master/examples/colab/tf2_text_classification.ipynb

我想用ELMo嵌入替换gnews旋转嵌入。

因此,更换

model = "https://tfhub.dev/google/tf2-preview/gnews-swivel-20dim/1"
Run Code Online (Sandbox Code Playgroud)

与:

model = "https://tfhub.dev/google/elmo/2"
Run Code Online (Sandbox Code Playgroud)

这里发生了一系列变化,例如需要

tf.compat.v1.disable_eager_execution()
Run Code Online (Sandbox Code Playgroud)

但是我不了解要成功完成此替换的图形形状。具体来说,我看到了。

#model = "https://tfhub.dev/google/tf2-preview/gnews-swivel-20dim/1"
model = "https://tfhub.dev/google/elmo/2"

elmo = hub.Module(model, trainable=True, name="{}_module".format("mymod"))

hub_layer = hub.KerasLayer(elmo, 
#                           output_shape=[3,20], 
#                           input_shape=(1,),
                           dtype=tf.string, 
                           trainable=True)

hub_layer(train_examples[:3])
Run Code Online (Sandbox Code Playgroud)

产生

<tf.Tensor 'keras_layer_14/mymod_module_14_apply_default/truediv:0' shape=(3, 1024) dtype=float32>
Run Code Online (Sandbox Code Playgroud)

这似乎很好。但:

model = tf.keras.Sequential()
model.add(hub_layer)
model.add(tf.keras.layers.Dense(16, activation='relu'))
model.add(tf.keras.layers.Dense(1, activation='sigmoid'))

# First, I have to build, because I no longer have eager executon.
model.build(input_shape=(None,1024))

model.summary()
Run Code Online (Sandbox Code Playgroud)

然后给出:

---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

<ipython-input-54-8786753617e4> in <module>()
      4 model.add(tf.keras.layers.Dense(1, activation='sigmoid'))
      5 …
Run Code Online (Sandbox Code Playgroud)

tensorflow google-colaboratory tensorflow-hub elmo

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

句子编码和上下文词嵌入有什么区别?

我在阅读有关 BERT 和 ELMo 的论文时看到了这两个术语,所以我想知道它们之间是否有区别。

nlp word-embedding elmo bert-language-model

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