KerasRS / API 文档 / 嵌入层 / EmbedReduce 层

EmbedReduce 层

[源代码]

EmbedReduce

keras_rs.layers.EmbedReduce(
    input_dim: int,
    output_dim: int,
    embeddings_initializer: Union[
        str,
        keras.src.initializers.initializer.Initializer,
        type[keras.src.initializers.initializer.Initializer],
        Callable[[Sequence[int | None], str], Any],
        Any,
    ] = "uniform",
    embeddings_regularizer: Union[
        str,
        keras.src.regularizers.regularizers.Regularizer,
        type[keras.src.regularizers.regularizers.Regularizer],
        Callable[[Any], Any],
        NoneType,
    ] = None,
    embeddings_constraint: Union[
        str,
        keras.src.constraints.constraints.Constraint,
        type[keras.src.constraints.constraints.Constraint],
        Callable[[Any], Any],
        NoneType,
    ] = None,
    mask_zero: bool = False,
    weights: Any = None,
    combiner: str = "mean",
    **kwargs: Any
)

一个使用组合器进行降维的嵌入层。

此层对输入进行嵌入,然后应用降维操作将一组嵌入组合成单个嵌入。这通常用于将项序列嵌入为单个嵌入。

如果传递给 __call__ 的输入是 1D 的,则不应用降维。如果输入是 2D 的,则使用组合器对维度 1 进行降维,以便结果的形状为 (batch_size, output_dim)。不允许使用 3 维及更高维的输入。可以选择将权重传递给 __call__ 方法,以便在降维之前对不同的样本应用权重。

此层支持稀疏输入和不规则输入(如果后端支持)。降维后的输出是密集的。对于不规则输入,不规则维度必须是 1,因为它是一个被降维的维度。

参数

  • input_dim:整数。词汇表的大小,最大整数索引 + 1。
  • output_dim:整数。稠密嵌入的维度。
  • embeddings_initializerembeddings 矩阵的初始化器(参见 keras.initializers)。
  • embeddings_regularizer:应用于 embeddings 矩阵的正则化函数(参见 keras.regularizers)。
  • embeddings_constraint:应用于 embeddings 矩阵的约束函数(参见 keras.constraints)。
  • mask_zero:布尔值,输入值 0 是否是一个特殊的“填充”值,应该被屏蔽掉。这在使用可能采用变长输入的循环层时很有用。如果此参数为 True,则模型中所有后续层都需要支持屏蔽,否则将引发异常。如果 mask_zero 设置为 True,结果是词汇表中不能使用索引 0(input_dim 应等于词汇表大小 + 1)。
  • weights:可选的浮点矩阵,大小为 (input_dim, output_dim)。要使用的初始嵌入值。
  • combiner:指定如果单行中有多个条目时如何进行降维。目前支持 meansqrtnsummean 是默认值。sqrtn 通常能获得良好的准确性,特别是对于词袋模型列。
  • **kwargs:传递给 Embedding 的附加关键字参数。

[源代码]

call 方法

EmbedReduce.call(inputs: Any, weights: Optional[Any] = None)

应用嵌入和降维。

参数

  • inputs:用于嵌入的 1D 张量,或用于嵌入和降维的 2D 张量。
  • weights:在降维前应用的可选权重张量,可以是 1D 或 2D,并且必须与 inputs 的第一个维度匹配(1D 情况)或与 inputs 的形状匹配(2D 情况)。

返回

一个形状为 (batch_size, output_dim) 的密集 2D 张量。