FNetEncoder 层

[源代码]

FNetEncoder

keras_hub.layers.FNetEncoder(
    intermediate_dim,
    dropout=0,
    activation="relu",
    layer_norm_epsilon=1e-05,
    kernel_initializer="glorot_uniform",
    bias_initializer="zeros",
    **kwargs
)

FNet 编码器。

此类别遵循 FNet 论文中 FNet 编码器层的架构。用户可以实例化此类的多个实例以堆叠编码器。

关于掩码的注意事项:在官方 FNet 代码中,填充标记被添加到输入中。然而,填充掩码被删除,即所有标记都混合在一起。这是因为如果我们对每个编码器层应用填充掩码,某些频率将被清零。因此,我们不在 `call()` 函数中将填充掩码作为输入。

参数

  • intermediate_dim:int。前馈网络的隐藏大小。
  • dropout:float。在前馈网络中应用的 dropout 值。默认为 0.
  • activation:string 或 keras.activations。前馈网络的激活函数。默认为 "relu"
  • layer_norm_epsilon: float。层归一化组件中的 epsilon 值。默认为 1e-5
  • kernel_initializerstrkeras.initializers 初始化器。全连接层的核初始化器。默认为 "glorot_uniform"
  • bias_initializer:“string” 或 keras.initializers 初始化器。全连接层的偏置初始化器。默认为 "zeros"
  • **kwargs: 传递给 keras.layers.Layer 的其他关键字参数,包括 nametrainabledtype 等。

示例

# Create a single FNet encoder layer.
encoder = keras_hub.layers.FNetEncoder(
    intermediate_dim=64)

# Create a simple model containing the encoder.
input = keras.Input(shape=(10, 64))
output = encoder(input)
model = keras.Model(inputs=input, outputs=output)

# Call encoder on the inputs.
input_data = np.random.uniform(size=(1, 10, 64))
output = model(input_data)

参考文献