gpt4 book ai didi

python - Keras 嵌入层掩蔽。为什么 input_dim 需要是 |vocabulary| + 2?

转载 作者:行者123 更新时间:2023-12-01 18:56:56 24 4
gpt4 key购买 nike

在 Keras 文档中的嵌入 https://keras.io/layers/embeddings/ ,对 mask_zero 的解释是

mask_zero: Whether or not the input value 0 is a special "padding" value that should be masked out. This is useful when using recurrent layers which may take variable length input. If this is True then all subsequent layers in the model need to support masking or an exception will be raised. If mask_zero is set to True, as a consequence, index 0 cannot be used in the vocabulary (input_dim should equal |vocabulary| + 2).

为什么 input_dim 需要是 2 + 词汇中的单词数?假设0被屏蔽了不能使用,那不应该就是1+字数吗?另一个额外的条目有什么用?

最佳答案

我认为这些文档有点误导。在正常情况下,您将 n 输入数据索引 [0, 1, 2, ..., n-1] 映射到向量,因此您的 input_dim 应该与您拥有的元素一样多

input_dim = len(vocabulary_indices)

一种等效的(但有点令人困惑)的表达方式以及文档的方式是说

1 + maximum integer index occurring in the input data.

input_dim = max(vocabulary_indices) + 1

如果启用屏蔽,则值 0 的处理方式会有所不同,因此您将 n 索引加一:[0, 1, 2, ... , n-1, n],因此你需要

input_dim = len(vocabulary_indices) + 1

或者

input_dim = max(vocabulary_indices) + 2

正如他们所说,文档在这里变得特别困惑

(input_dim should equal |vocabulary| + 2)

我将|x|解释为集合的基数(相当于len(x)),但作者的意思似乎是

2 + maximum integer index occurring in the input data.

关于python - Keras 嵌入层掩蔽。为什么 input_dim 需要是 |vocabulary| + 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43227938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com