1

我正在 tensorflow hub 中查看 ELMo 模型,我不太清楚tokens_length = [6, 5]在流程示例使用中的含义:(https://tfhub.dev/google/elmo/2

elmo = hub.Module("https://tfhub.dev/google/elmo/2", trainable=True)
tokens_input = [["the", "cat", "is", "on", "the", "mat"],
                ["dogs", "are", "in", "the", "fog", ""]]
tokens_length = [6, 5]
embeddings = elmo(
    inputs={
        "tokens": tokens_input,
        "sequence_len": tokens_length
    },
    signature="tokens",
    as_dict=True)["elmo"]

它不喜欢输入标记句子的最大长度,也不喜欢 [每个句子的最大单词数,句子数],这让我感到困惑。有人可以解释一下吗?谢谢!

4

1 回答 1

1

第一个例子有长度6,第二个例子有长度5:。IE

猫在垫子上”有6个字,而“狗在雾中”只有5个字。输入中额外的空字符串确实增加了一点混乱:-/

如果您阅读该页面上的文档,它会解释为什么需要这样做(粗体字体是我的)

使用标记签名,模块将标记化的句子作为输入。输入张量是一个形状为 [batch_size, max_length ]的字符串张量和一个形状为 [batch_size] 的 int32 张量,对应于句子长度。在具有不同长度的句子的情况下,长度输入是排除填充所必需的

于 2019-06-25T12:38:14.833 回答