paddlets.models.anomaly.dl.utils

percentile(anomaly_score: ndarray, q: float = 100)[源代码]

根据分位数计算阈值。

参数
  • anomaly_score (np.ndarray) – 异常得分。

  • q (float) – 用于计算分位数的参数,取值范围0到100。

返回

异常阈值。

返回类型

threshold(float)

my_kl_loss(p: Tensor, q: Tensor)[源代码]

KL散度。

参数
  • p (paddle.Tensor) – 对数概率计算中,任意形状的张量。

  • q (paddle.Tensor) – 输入张量的形状。

返回

得到loss值。

返回类型

loss(paddle.Tensor)

adjust_learning_rate(optimizer: Callable[[...], Optimizer], epoch: int, lr_: float)[源代码]

动态调整学习率。

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

  • epoch (int) – 训练过程中的最大迭代次数。

  • lr (float) – 学习率。

series_prior_loss(output_list: List[Tensor], input: Tensor, criterion: Callable[[...], Tensor] = MSELoss(), win_size: int = 100, k: int = 3)[源代码]

训练过程中计算关联差异。

参数
  • output_list (List[paddle.Tensor]) – 模型输出的张量列表。

  • input (paddle.Tensor) – 目标张量结果。

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

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

  • k (int) – 优化策略: 放大关联差异。

返回

全局关联损失和重建损失.局部关联损失和重建损失.重建损失和关联差异。

返回类型

loss1(paddle.Tensor)

series_prios_energy(output_list, loss, temperature=50, win_size=100)[源代码]

测试过程中计算关联差异。

参数
  • output_list (List[paddle.Tensor]) – 模型输出的张量列表。

  • loss (paddle.Tensor) – 得到loss值。

  • temperature (int|float) – 一个用来调整全局关联损失与局部关联损失的参数。

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

返回

预测异常得分结果。

返回类型

cri(np.ndarray)

anomaly_get_threshold(model: ~typing.Callable[[...], ~paddle.Tensor], train_dataloader: ~paddle.fluid.reader.DataLoader, thre_dataloader: ~paddle.fluid.reader.DataLoader, temperature: float = 50, anormly_ratio: float = 4, criterion: ~typing.Callable[[...], ~paddle.Tensor] = MSELoss(), my_kl_loss: ~typing.Callable[[...], ~paddle.Tensor] = <function my_kl_loss>, win_size: int = 100)[源代码]

基于关联差异的异常标准计算阈值。

参数
  • model (Callable[..., paddle.Tensor]) – Anomaly transformer模型。

  • train_dataloader (paddle.io.DataLoader) – 训练集。

  • thre_dataloader (List[paddle.io.DataLoader]|None) – 测试集。

  • temperature (int|float) – 一个用来调整全局关联损失与局部关联损失的参数。

  • anormly_ratio (int|float) – 训练集和测试集比例。

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

  • my_kl_loss (Callable[..., paddle.Tensor]|None) – 关联差异损失函数。

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

返回

用于判断异常的阈值。

返回类型

threshold(float|None)

result_adjust(pred: ndarray, real: ndarray)[源代码]

广泛应用于时序异常检测的后处理方法。

参数
  • pred (List[float]|np.ndarray) – 模型预测结果。

  • real (List[float]|np.ndarray) – 目标值的真实结果。

返回

后处理后的预测结果。

返回类型

pred(np.ndarray)

smooth_l1_loss_vae(output_tensor_list: List[Tensor], kld_beta: float = 0.2)[源代码]

smooth l1 损失函数。

参数
  • output_tensor_list (list[paddle.Tensor]) – 模型输出。

  • kld_beta (float) – 范围在0~1之间。

返回

得到loss值。

返回类型

loss(float)

to_tsdataset(scenario: str = 'anomaly_label') Callable[[...], Callable[[...], TSDataset]][源代码]

数据转换装饰器,将np.ndarray转换成tsdataset。

参数

scenario (str) – 任务类型,包括anomaly_label和anomaly_score两种。

返回

Wrapped core function.

返回类型

Callable[…, Callable[…, TSDataset]]

epsilon_th(anomaly_score: ndarray, reg_level: int = 1)[源代码]

一种计算阈值的方法:https://arxiv.org/abs/1802.04431,代码来源于:https://github.com/khundman/telemanom

参数
  • anomaly_score (np.ndarray) – 异常得分。

  • reg_level (int) – 用于计算阈值的参数。

返回

异常阈值。

返回类型

threshold(float)