torch_frame.nn.models.MLP

class MLP(channels: int, out_channels: int, num_layers: int, col_stats: dict[str, dict[StatType, Any]], col_names_dict: dict[torch_frame.stype, list[str]], stype_encoder_dict: dict[torch_frame.stype, StypeEncoder] | None = None, normalization: str | None = 'layer_norm', dropout_prob: float = 0.2)[source]

基础类: Module

轻量级MLP模型,它对列嵌入进行均值池化,并对其应用MLP。

Parameters:
  • channels (int) – 骨干层中的通道数。

  • out_channels (int) – 解码器中输出通道的数量。

  • num_layers (int) – 骨干网络中的层数。

  • col_stats (dict[str,Dict[torch_frame.data.stats.StatType,Any]]) – 一个将列名映射到统计信息的字典。 可作为 dataset.col_stats 使用。

  • col_names_dict (dict[torch_frame.stype, List[str]]) – 一个 将stype映射到列名列表的字典。列名根据 tensor_frame.feat_dict中出现的顺序进行排序。可通过 tensor_frame.col_names_dict访问。

  • stype_encoder_dict – (dict[torch_frame.stype, torch_frame.nn.encoder.StypeEncoder], 可选): 一个将stypes映射到其stype编码器的字典。 (默认: None, 将调用 EmbeddingEncoder() 用于分类特征和 LinearEncoder() 用于 数值特征)

  • normalization (str, optional) – 使用的归一化类型。 batch_norm, layer_norm, 或 None. (默认: layer_norm)

  • dropout_prob (float) – 丢弃概率(默认值:0.2)。

forward(tf: TensorFrame) Tensor[来源]

TensorFrame对象转换为输出预测。

Parameters:

tf (TensorFrame) – 输入的 TensorFrame 对象。

Returns:

输出形状为 [batch_size, out_channels]。

Return type:

torch.Tensor