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)