paddlets.models.anomaly.dl.anomaly_base

class AnomalyBaseModel(in_chunk_len: int, sampling_stride: int = 1, loss_fn: ~typing.Optional[~typing.Callable[[...], ~paddle.Tensor]] = None, anomaly_score_fn: ~typing.Optional[~typing.Callable[[...], ~typing.List[float]]] = None, threshold: ~typing.Optional[float] = None, threshold_fn: ~typing.Optional[~typing.Callable[[...], float]] = None, threshold_coeff: float = 1.0, pred_adjust: bool = False, pred_adjust_fn: ~typing.Optional[~typing.Callable[[...], ~numpy.ndarray]] = None, optimizer_fn: ~typing.Callable[[...], ~paddle.optimizer.optimizer.Optimizer] = <class 'paddle.optimizer.adam.Adam'>, optimizer_params: ~typing.Dict[str, ~typing.Any] = {'learning_rate': 0.001}, eval_metrics: ~typing.List[str] = [], callbacks: ~typing.List[~paddlets.models.common.callbacks.callbacks.Callback] = [], batch_size: int = 128, max_epochs: int = 10, verbose: int = 1, patience: int = 4, seed: ~typing.Union[None, int] = None)[源代码]

基类:ABC

所有基于paddle的深度学习异常检测模型的基类

参数
  • in_chunk_len (int) – 模型输入的时间序列长度。

  • sampling_stride (int) – 相邻样本间的采样间隔。

  • loss_fn (Callable[..., paddle.Tensor]|None) – 损失函数。

  • anomaly_score_fn (Callable[..., List[float]]|None) – 获取异常分数的方法。

  • threshold (float|None) – 判断异常的阈值。

  • threshold_fn (Callable[..., float]|None) – 获取异常阈值的方法。

  • threshold_coeff (float) – 异常阈值的系数。

  • pred_adjust (bool) – 是否根据实际标签调整预测结果。

  • pred_adjust_fn (Callable[..., np.ndarray]|None) – 调整预测结果的方法。

  • optimizer_fn (Callable[..., Optimizer]) – 优化器算法。

  • optimizer_params (Dict[str, Any]) – 优化器参数。

  • eval_metrics (List[str]) – 模型的评估指标。

  • callbacks (List[Callback]) – 自定义的callback函数。

  • batch_size (int) – 每个批次中的样本数量。

  • max_epochs (int) – 训练过程中最大迭代轮数。

  • verbose (int) – 模型日志模式。

  • patience (int) – 模型训练过程中, 当评估指标超过一定轮数不再变优,模型提前停止训练。

  • seed (int|None) – 全局随机种子, 注: 保证每次模型参数初始化一致。

_in_chunk_len

模型输入的时间序列长度。

Type

int

_sampling_stride

相邻样本间的采样间隔。

Type

int

_loss_fn

损失函数。

Type

Callable[…, paddle.Tensor]|None

_anomaly_score_fn

获取异常分数的方法。

Type

Callable[…, paddle.Tensor]|None

_threshold

判断异常的阈值。

Type

float|None

_threshold_fn

获取异常阈值的方法。

Type

Callable[…, paddle.Tensor]|None

_threshold_coeff

异常阈值的系数。

Type

float

_pred_adjust

是否根据实际标签调整预测结果。

Type

float

_pred_adjust_fn

调整预测结果的方法。

Type

Callable[…, np.ndarray]|None

_optimizer_fn

优化器算法。

Type

Callable[…, Optimizer]

_optimizer_params

优化器参数。

Type

Dict[str, Any]

_eval_metrics

模型的评估指标。

Type

List[str]

_callbacks

自定义的callback函数。

Type

List[Callback]

_batch_size

每个批次中的样本数量。

Type

int

_max_epochs

训练过程中最大迭代轮数。

Type

int

_verbose

模型日志模式。

Type

int

_patience

模型训练过程中, 当评估指标超过一定轮数不再变优,模型提前停止训练。

Type

int

_seed

全局随机种子, 注: 保证每次模型参数初始化一致。

Type

int|None

_stop_training
Type

bool

_fit_params

根据TSDataset自动推断各种参数。

Type

Dict[str, Any]

_network

网络结构。

Type

paddle.nn.Layer

_optimizer

优化器。

Type

Optimizer

_metrics

评估方法实例列表。

Type

List[Metric]

_metrics_names

评估方法名称列表。

Type

List[str]

_metric_container_dict

评估方法的容器。

Type

Dict[str, MetricContainer]

_history

历史信息。

Type

History

_callback_container

一个包含回调实例的容器。

Type

CallbackContainer

fit(train_tsdataset: TSDataset, valid_tsdataset: Optional[TSDataset] = None)[源代码]
训练过程

,使用训练集进行训练,验证集进行评估。

参数
  • train_tsdataset (TSDataset) – 训练集。

  • valid_tsdataset (TSDataset|None) – 用于早停的验证集。

predict(tsdataset: TSDataset, **predict_kwargs) TSDataset[源代码]

获取数据的异常标签,输出格式为TSDataset。

参数
  • tsdataset (TSDataset) – 用于预测的数。

  • **predict_kwargs – _predict额外的参数。

返回

TSDataset.

predict_score(tsdataset: TSDataset, **predict_kwargs) TSDataset[源代码]

获取数据的异常分数,输出格式为TSdataset。

参数
  • tsdataset (TSDataset) – 用于预测的数。

  • **predict_kwargs – _predict额外的参数。

返回

TSDataset.

save(path: str, network_model: bool = False, dygraph_to_static: bool = True, batch_size: Union[None, int] = None) None[源代码]

将一个AnomalyBaseModel模型实例保存在磁盘文件中。

1> 任何一个 AnomalyBaseModel 或者继承自 AnomalyBaseModel 的实例均拥有一组成员变量,它们一般可以被分为3种类型: 可以被pickle序列化的成员(例如:int,str,dict等python内置的数据类型), paddle相关的,并且无法被pickle序列化的成员(例如:paddle.nn.Layer, paddle.optimizer.Optimizer), 以及与paddle不相关的,并且无法被pickle序列化的成员。

2> 调用此方法前需保证self._network 和 self._optimizer成员不为None。

参数
  • path (str) – 一个包含模型文件名的字符串格式的路径。

  • network_model (bool) – Save network model structure and parameters separately for Paddle Inference or not, default False.

  • dygraph_to_static (bool) – Change network from dygraph to static or not, it works when network_model==True, default True.

  • batch_size (int) – The fixed batch size for the param input_spec of network_model save, it works when network_model==True, default None.

引发

ValueError

static load(path: str) AnomalyBaseModel[源代码]

从给定的文件路径加载一个AnomalyBaseModel模型。

由于预测期间optimizer并不影响模型的预测效果,因此当前暂不加载optimizer。

参数

path (str) – 一个包含模型文件名的字符串格式的路径。

返回

加载得到的AnomalyBaseModel模型实例。

返回类型

AnomalyBaseModel