mambular.base_models

目录

mambular.base_models#

class mambular.base_models.BaseModel(*args: Any, **kwargs: Any)[源代码]#
count_parameters()[源代码]#

计算模型中可训练参数的数量。

返回:

可训练参数的总数。

返回类型:

int

freeze_parameters()[源代码]#

通过将 requires_grad 设置为 False 来冻结模型参数。

get_device()[源代码]#

获取模型所在的设备。

返回:

模型所在的设备。

返回类型:

torch.device

load_model(path, device='cpu')[源代码]#

从给定路径加载模型参数。

参数:
  • path (str) – 加载模型参数的路径。

  • device (str, optional) – 用于映射模型参数的设备,默认为 ‘cpu’。

log_parameters(logger=None)[源代码]#

记录超参数和模型参数。

参数:

logger (logging.Logger, optional) – 记录器实例以记录参数,默认为 None。

parameter_count()[源代码]#

获取模型中每一层的参数计数字典。

返回:

字典,其中键是层名称,值是参数计数。

返回类型:

dict

print_summary()[源代码]#

打印模型的摘要,包括架构和参数数量。

save_hyperparameters(ignore=[])[源代码]#

保存超参数,同时忽略指定的键。

参数:

ignore (list, optional) – 保存超参数时忽略的键列表,默认值为 []。

save_model(path)[源代码]#

将模型参数保存到给定路径。

参数:

path (str) – 保存模型参数的路径。

to_device(device)[源代码]#

将模型移动到指定的设备。

参数:

device (torch.device or str) – 设备以移动模型到。

unfreeze_parameters()[源代码]#

通过将 requires_grad 设置为 True 来解冻模型参数。

class mambular.base_models.TaskModel(model_class, config, cat_feature_info, num_feature_info, num_classes=1, lss=False, family=None, loss_fct=None, **kwargs)[源代码]#

用于训练和评估模型的 PyTorch Lightning 模块。

参数:
  • model_class (Type[nn.Module]) – 要实例化和训练的模型类。

  • config (dataclass) – 包含模型超参数的配置数据类。

  • loss_fn (callable) – 训练和评估过程中使用的损失函数。

  • lr (float, optional) – 优化器的学习率(默认值为1e-3)。

  • num_classes (int, optional) – 分类任务的类别数量(默认是 1)。

  • lss (bool, optional) – 用于额外损失配置的自定义标志(默认值为 False)。

  • **kwargs (dict) – 附加的关键字参数。

compute_loss(predictions, y_true)[源代码]#

计算给定预测值和真实标签的损失。

参数:
  • predictions (Tensor) – 模型预测。

  • y_true (Tensor) – 真实标签。

返回:

计算的损失。

返回类型:

Tensor

configure_optimizers()[源代码]#

根据提供的配置设置模型的优化器和学习率调度器。

返回:

包含优化器和lr_scheduler配置的字典。

返回类型:

dict

forward(num_features, cat_features)[源代码]#

通过模型的前向传递。

参数:
  • *args (tuple) – 传递给模型前向方法的位置参数。

  • **kwargs (dict) – 传递给模型前向方法的关键字参数。

返回:

模型输出。

返回类型:

Tensor

test_step(batch, batch_idx)[源代码]#

单一批次的测试步骤。

参数:
  • batch (tuple) – 包含数值特征、分类特征和标签的数据批次。

  • batch_idx (int) – 批次的索引。

返回:

测试损失。

返回类型:

Tensor

training_step(batch, batch_idx)[源代码]#

单个批次的训练步骤。

参数:
  • batch (tuple) – 包含数值特征、分类特征和标签的数据批次。

  • batch_idx (int) – 批次的索引。

返回:

训练损失。

返回类型:

Tensor

validation_step(batch, batch_idx)[源代码]#

单个批次的验证步骤。

参数:
  • batch (tuple) – 包含数值特征、分类特征和标签的数据批次。

  • batch_idx (int) – 批次的索引。

返回:

验证损失。

返回类型:

Tensor

class mambular.base_models.Mambular(cat_feature_info, num_feature_info, num_classes=1, config=DefaultMambularConfig(lr=0.0001, lr_patience=10, weight_decay=1e-06, lr_factor=0.1, d_model=64, n_layers=4, expand_factor=2, bias=False, d_conv=4, conv_bias=True, dropout=0.0, dt_rank='auto', d_state=128, dt_scale=1.0, dt_init='random', dt_max=0.1, dt_min=0.0001, dt_init_floor=0.0001, norm='LayerNorm', activation=torch.nn.SiLU, embedding_activation=torch.nn.Identity, head_layer_sizes=(), head_dropout=0.5, head_skip_layers=False, head_activation=torch.nn.SELU, head_use_batch_norm=False, layer_norm_after_embedding=False, pooling_method='avg', bidirectional=False, use_learnable_interaction=False, use_cls=False, shuffle_embeddings=False, layer_norm_eps=1e-05, AD_weight_decay=True, BC_layer_norm=False, cat_encoding='int'), **kwargs)[源代码]#

一个利用 Mamba 架构和各种归一化技术的 PyTorch 模型,用于任务。

参数:
  • cat_feature_info (dict) – 包含分类特征信息的字典。

  • num_feature_info (dict) – 包含有关数值特征信息的字典。

  • num_classes (int, optional) – 输出类的数量(默认是 1)。

  • config (DefaultMambularConfig, optional) – 包含模型默认超参数的配置对象(默认是 DefaultMambularConfig())。

  • **kwargs (dict) – 附加的关键字参数。

lr#

学习率。

类型:

浮动

lr_patience#

学习率调度器的耐心。

类型:

整数

weight_decay#

优化器的权重衰减。

类型:

浮动

lr_factor#

学习率将减少的倍数。

类型:

浮动

pooling_method#

特征池化方法。

类型:

str

cat_feature_info#

包含分类特征信息的字典。

类型:

dict

num_feature_info#

包含有关数值特征信息的字典。

类型:

dict

embedding_activation#

嵌入的激活函数。

类型:

可调用

mamba#

Mamba 架构组件。

类型:

Mamba

norm_f#

归一化层。

类型:

nn.Module

num_embeddings#

数值特征嵌入的模块列表。

类型:

nn.ModuleList

cat_embeddings#

分类特征嵌入的模块列表。

类型:

nn.ModuleList

tabular_head#

用于表格数据的多层感知器头。

类型:

MLP

cls_token#

类令牌参数。

类型:

nn.Parameter

embedding_norm#

如果指定,则在嵌入后应用层归一化。

类型:

nn.Module, 可选

forward(num_features, cat_features)[源代码]#

定义模型的前向传递。

参数:
  • num_features (Tensor) – 包含数值特征的张量。

  • cat_features (Tensor) – 包含分类特征的张量。

返回:

模型的输出预测。

返回类型:

Tensor

class mambular.base_models.MLP(cat_feature_info, num_feature_info, num_classes=1, config=DefaultMLPConfig(lr=0.0001, lr_patience=10, weight_decay=1e-06, lr_factor=0.1, layer_sizes=(256, 128, 32), activation=torch.nn.SELU, skip_layers=False, dropout=0.5, norm=None, use_glu=False, skip_connections=False, batch_norm=False, layer_norm=False, use_embeddings=False, embedding_activation=torch.nn.Identity, layer_norm_after_embedding=False, d_model=32), **kwargs)[源代码]#
forward(num_features, cat_features)[源代码]#

MLP 模型的前向传播。

参数:

x (torch.Tensor) – 输入张量。

返回:

输出张量。

返回类型:

torch.Tensor

class mambular.base_models.ResNet(cat_feature_info, num_feature_info, num_classes=1, config=DefaultResNetConfig(lr=0.0001, lr_patience=10, weight_decay=1e-06, lr_factor=0.1, layer_sizes=(256, 128, 32), activation=torch.nn.SELU, skip_layers=False, dropout=0.5, norm=None, use_glu=False, skip_connections=True, batch_norm=True, layer_norm=False, num_blocks=3, use_embeddings=False, embedding_activation=torch.nn.Identity, layer_norm_after_embedding=False, d_model=32), **kwargs)[源代码]#
forward(num_features, cat_features)[源代码]#

ResNet 模型的前向传播。

参数:
  • num_features (torch.Tensor) – 数值特征的张量。

  • cat_features (torch.Tensor, optional) – 分类特征的张量。

返回:

输出张量。

返回类型:

torch.Tensor

class mambular.base_models.FTTransformer(cat_feature_info, num_feature_info, num_classes=1, config=DefaultFTTransformerConfig(lr=0.0001, lr_patience=10, weight_decay=1e-06, lr_factor=0.1, d_model=128, n_layers=4, n_heads=8, attn_dropout=0.2, ff_dropout=0.1, norm='LayerNorm', activation=torch.nn.SELU, embedding_activation=torch.nn.Identity, head_layer_sizes=(), head_dropout=0.5, head_skip_layers=False, head_activation=torch.nn.SELU, head_use_batch_norm=False, layer_norm_after_embedding=False, pooling_method='cls', norm_first=False, bias=True, transformer_activation=torch.nn.Module, layer_norm_eps=1e-05, transformer_dim_feedforward=256, cat_encoding='int'), **kwargs)[源代码]#

一个利用Transformer架构和各种归一化技术的PyTorch模型,适用于多种任务。

参数:
  • cat_feature_info (dict) – 包含分类特征信息的字典。

  • num_feature_info (dict) – 包含有关数值特征信息的字典。

  • num_classes (int, optional) – 输出类的数量(默认是 1)。

  • config (DefaultFTTransformerConfig, optional) – 包含模型默认超参数的配置对象(默认是 DefaultMambularConfig())。

  • **kwargs (dict) – 附加的关键字参数。

lr#

学习率。

类型:

浮动

lr_patience#

学习率调度器的耐心。

类型:

整数

weight_decay#

优化器的权重衰减。

类型:

浮动

lr_factor#

学习率将减少的倍数。

类型:

浮动

pooling_method#

特征池化方法。

类型:

str

cat_feature_info#

包含分类特征信息的字典。

类型:

dict

num_feature_info#

包含有关数值特征信息的字典。

类型:

dict

embedding_activation#

嵌入的激活函数。

类型:

可调用

encoder#

N 个编码器层的堆栈

类型:

可调用

norm_f#

归一化层。

类型:

nn.Module

num_embeddings#

数值特征嵌入的模块列表。

类型:

nn.ModuleList

cat_embeddings#

分类特征嵌入的模块列表。

类型:

nn.ModuleList

tabular_head#

用于表格数据的多层感知器头。

类型:

MLP

cls_token#

类令牌参数。

类型:

nn.Parameter

embedding_norm#

如果指定,则在嵌入后应用层归一化。

类型:

nn.Module, 可选

forward(num_features, cat_features)[源代码]#

定义模型的前向传递。

参数:
  • num_features (Tensor) – 包含数值特征的张量。

  • cat_features (Tensor) – 包含分类特征的张量。

返回:

模型的输出预测。

返回类型:

Tensor

class mambular.base_models.TabTransformer(cat_feature_info, num_feature_info, num_classes=1, config=DefaultTabTransformerConfig(lr=0.0001, lr_patience=10, weight_decay=1e-06, lr_factor=0.1, d_model=128, n_layers=4, n_heads=8, attn_dropout=0.2, ff_dropout=0.1, norm='LayerNorm', activation=torch.nn.SELU, embedding_activation=torch.nn.Identity, head_layer_sizes=(), head_dropout=0.5, head_skip_layers=False, head_activation=torch.nn.SELU, head_use_batch_norm=False, layer_norm_after_embedding=False, pooling_method='avg', norm_first=True, bias=True, transformer_activation=torch.nn.Module, layer_norm_eps=1e-05, transformer_dim_feedforward=512, cat_encoding='int'), **kwargs)[源代码]#

一个利用Transformer架构和各种归一化技术的PyTorch模型,适用于多种任务。

参数:
  • cat_feature_info (dict) – 包含分类特征信息的字典。

  • num_feature_info (dict) – 包含有关数值特征信息的字典。

  • num_classes (int, optional) – 输出类的数量(默认是 1)。

  • config (DefaultFTTransformerConfig, optional) – 包含模型默认超参数的配置对象(默认是 DefaultMambularConfig())。

  • **kwargs (dict) – 附加的关键字参数。

lr#

学习率。

类型:

浮动

lr_patience#

学习率调度器的耐心。

类型:

整数

weight_decay#

优化器的权重衰减。

类型:

浮动

lr_factor#

学习率将减少的倍数。

类型:

浮动

pooling_method#

特征池化方法。

类型:

str

cat_feature_info#

包含分类特征信息的字典。

类型:

dict

num_feature_info#

包含有关数值特征信息的字典。

类型:

dict

embedding_activation#

嵌入的激活函数。

类型:

可调用

encoder#

N 个编码器层的堆栈

类型:

可调用

norm_f#

归一化层。

类型:

nn.Module

num_embeddings#

数值特征嵌入的模块列表。

类型:

nn.ModuleList

cat_embeddings#

分类特征嵌入的模块列表。

类型:

nn.ModuleList

tabular_head#

用于表格数据的多层感知器头。

类型:

MLP

cls_token#

类令牌参数。

类型:

nn.Parameter

embedding_norm#

如果指定,则在嵌入后应用层归一化。

类型:

nn.Module, 可选

forward(num_features, cat_features)[源代码]#

定义模型的前向传递。

参数:
  • num_features (Tensor) – 包含数值特征的张量。

  • cat_features (Tensor) – 包含分类特征的张量。

返回:

模型的输出预测。

返回类型:

Tensor