众所周知,Tensorflow-Hub通过运行以下代码即可提供预训练的嵌入。
让我们说我们想要句子的嵌入,但是对于单词的预训练嵌入也需要针对本地上下文进行调整。说唐纳德和特朗普在保留嵌入中可能存在较大的余弦距离,但是在我的本地系统中,由于它们经常发生,因此它们应该具有更小的余弦距离。
我知道Trainable = True。但这只是解冻模块。我不认为仅设置Trainable = True即可在调用嵌入时自动调整权重并为您返回微调的权重。如果我错了请纠正我。
那么问题是如何获得微调的嵌入?请注意,没有分类任务。我只是想获取嵌入内容,并根据本地语料库上下文进行微调。
!pip install "tensorflow_hub==0.4.0"
!pip install "tf-nightly"
import tensorflow as tf
import tensorflow_hub as hub
tf.enable_eager_execution()
module_url = "https://tfhub.dev/google/tf2-preview/nnlm-en-dim128/1"
embed = hub.KerasLayer(module_url)
embeddings = embed(["A long sentence.", "single-word",
"http://example.com"])
print(embeddings.shape)