- 人工智能
- 计算机视觉
- 预训练
【免费下载链接】PaddleSeg
Easy-to-use image segmentation library with awesome pre-trained model zoo, supporting wide-range of practical tasks in Semantic Segmentation, Interactive Segmentation, Panoptic Segmentation, Image Matting, 3D Segmentation, etc.
PaddleSeg 内置了一套完整、可插拔的损失函数库(paddleseg.models.losses),覆盖从基础交叉熵到 OHEM 难样本挖掘、Lovasz 系列、Dice、语义连通性(SCL)等语义分割常用损失。本指南以官方文档 losses_en.md 为主体,结合 损失函数源码 与真实训练配置,逐项讲解每个损失类的数学背景、构造参数、默认值、适用场景与 YAML 配置方法。读完本文,你将能够:在 PaddleSeg 的loss配置段中自由组合并加权多种损失(如 CrossEntropy + LovaszSoftmax)、针对类别不均衡与难样本问题选择合适的损失,以及通过 MixedLoss 实现多损失混合训练而无需改动网络代码。
损失函数库总览:注册机制与模块结构
PaddleSeg 的所有损失类都位于 paddleseg/models/losses/ 目录,并通过@manager.LOSSES.add_component装饰器注册到统一的组件管理器中(见 paddleseg/cvlibs/manager.py)。这意味着训练时只需在 YAML 配置中按名称引用损失类型,框架会自动完成类的实例化与调用,无需修改任何训练代码。
从 损失库__init__.py的导出列表可以确认,官方文档详细讲解的损失包括:
| 模块文件 | 损失类 |
|---|---|
| cross_entropy_loss.py | CrossEntropyLoss |
| binary_cross_entropy_loss.py | BCELoss |
| bootstrapped_cross_entropy.py | BootstrappedCrossEntropyLoss |
| decoupledsegnet_relax_boundary_loss.py | RelaxBoundaryLoss |
| dice_loss.py | DiceLoss |
| gscnn_dual_task_loss.py | DualTaskLoss |
| edge_attention_loss.py | EdgeAttentionLoss |
| l1_loss.py | L1Loss |
| lovasz_loss.py | LovaszSoftmaxLoss/LovaszHingeLoss |
| mean_square_error_loss.py | MSELoss |
| ohem_cross_entropy_loss.py | OhemCrossEntropyLoss |
| ohem_edge_attention_loss.py | OhemEdgeAttentionLoss |
| semantic_connectivity_loss.py | SemanticConnectivityLoss |
| mixed_loss.py | MixedLoss |
此外,从源码结构可以推断,该模块还实现了FocalLoss、KLLoss、RMILoss、DetailAggregateLoss、PointCrossEntropyLoss、PixelContrastCrossEntropyLoss、SECrossEntropyLoss、MaskFormerLoss、DistillationLoss、DistillCrossEntropyLoss等更多损失,用于特定模型(如 MaskFormer、蒸馏训练),它们与上述 14 个类共用同一注册与配置机制。
YAML 配置范式:如何声明与组合损失
PaddleSeg 的损失配置段位于模型配置文件中的loss:字段,采用"类型列表 + 加权系数"的结构。以下配置展示了如何将CrossEntropyLoss与LovaszSoftmaxLoss通过MixedLoss组合(完整示例见 configs/ocrnet/ocrnet_hrnetw18_cityscapes_1024x512_160k_lovasz_softmax.yml):
loss: types: - type: MixedLoss losses: - type: CrossEntropyLoss - type: LovaszSoftmaxLoss coef: [0.8, 0.2] coef: [1]其中外层的coef对应网络多个输出的加权系数(一般网络只有一个 logit 输出,故为[1]);内层MixedLoss的coef则是组合内各损失函数的权重。若某个损失需要传递构造参数,直接在类型下方平铺键值即可,例如:
loss: types: - type: OhemCrossEntropyLoss thresh: 0.7 min_kept: 10000 coef: [1]CrossEntropyLoss:语义分割最常用的基线损失
交叉熵(Cross Entropy, CE)因其简单有效,已成为最流行的损失函数之一,它描述了两个概率分布之间的差异,可用于衡量当前模型与"真实模型"(训练过程中我们将给定的标注集视为真实世界的模型)之间的差距。机器学习中的逻辑回归正是交叉熵的一种特例。在语义分割中,它允许针对不同类别的像素调整权重,从而缓解多类别样本不均衡问题。
class paddleseg.models.losses.CrossEntropyLoss( weight = None, ignore_index = 255, top_k_percent_pixels = 1.0 )参数说明
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
weight | tuple/list/ndarray/Tensor,可选 | None | 各类别的手动重缩放权重,长度必须等于类别数。在多种类样本不均衡时可用于调整各类权重。从源码(cross_entropy_loss.py)看,权重会被转为 float32 的 Tensor,且若logit的类别通道数与权重长度不一致会抛出ValueError |
ignore_index | int64,可选 | 255 | 标注图中指定被忽略的像素值,这些像素不参与梯度计算。当标注图存在无法(或难以)标注的像素时,可将其标记为特定灰度值,计算损失时这些像素不作为损失函数的自变量 |
top_k_percent_pixels | float,可选 | 1.0 | 取值区间 [0.0, 1.0]。当值 < 1.0 时,只对 top k 百分比的像素计算损失(例如 top 20% 像素),适用于难像素挖掘(hard pixel mining) |
源码补充:该类的forward(logit, label, semantic_weights=None)还支持传入semantic_weights对每个像素的损失进行加权;同时实现了avg_non_ignore(是否仅对非忽略像素求平均,默认 True)与data_format('NCHW'/'NHWC',默认 'NCHW')两个扩展参数,这在 NHWC 布局的部署场景中有用。类内部还维护了EPS = 1e-8的小量用于数值稳定。
BCELoss:二分类与多标签分割
二值交叉熵适用于二分类和多标签分类任务。它基于标注图的概率模型,用二值语义分割模型计算 KL 散度;根据 Gibbs 不等式,两者交叉熵大于语义分割概率模型的熵。计算 BCELoss 时通常忽略语义分割概率模型的熵(因为它是常数),仅使用 KL 散度的一部分作为损失函数。
class paddleseg.models.losses.BCELoss( weight = None, pos_weight = None, ignore_index =255, edge_label = False )参数说明
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
weight | Tensor | str,可选 | None | 对每个 batch 元素的损失进行手动重缩放的权重。若给定,须是大小为[N,]的 1D Tensor(float32/float64)。若类型为 str,则必须等于'dynamic',表示每一步动态计算权重 |
pos_weight | float | str,可选 | None | 正样本的权重。若类型为 str,必须等于'dynamic',表示每一步动态计算权重 |
ignore_index | int64,可选 | 255 | 同上,标注图中被忽略的像素值,不参与梯度计算 |
edge_label | bool,可选 | False | 是否使用边缘标签 |
BootstrappedCrossEntropyLoss:迭代自举的硬样本学习
自举(Bootstrapping)方法先用样本构建一个初始分类,然后迭代地对未标注样本进行分类,再用扩充后的训练数据为未标注样本提取新的种子规则。该损失可参考文献 "Learning from Noisy Labels with Deep Neural Networks"(arXiv:1412.6596)中提出的思想,通过只对损失超过阈值的像素计算损失,聚焦于模型当前难以正确分类的样本。
class paddleseg.models.losses.BootstrappedCrossEntropyLoss( min_K, loss_th, weight = None, ignore_index = 255 )参数说明
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
min_K | int,必填 | 无 | 参与损失计算的像素的最少数量 |
loss_th | float,必填 | 无 | 损失阈值,只有损失大于该阈值的像素才被计算 |
weight | tuple/list,可选 | None | 不同类别的权重 |
ignore_index | int,可选 | 255 | 标注图中被忽略的像素值,不参与梯度计算 |
RelaxBoundaryLoss:面向 DecoupleSegNet 的边界松弛损失
RelaxBoundaryLoss 专为 DecoupleSegNet 设计,由多个部分组成:主特征损失、边缘特征损失和交叉熵损失。该模型对边界像素可能归属的类别(≥2)进行预测,此损失在边界松弛约束下最大化单个像素各类别概率之和。
class paddleseg.models.losses.RelaxBoundaryLoss( border = 1, calculate_weights = False, upper_bound = 1.0, ignore_index = 255 )参数说明
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
border | int,可选 | 1 | 边界松弛(relax)的像素宽度值 |
calculate_weights | bool,可选 | False | 是否为每个类别计算权重 |
upper_bound | float,可选 | 1.0 | 若为各类别计算权重,权重的上界 |
ignore_index | int64 | 255 | 标注图中被忽略的像素值,不参与梯度计算 |
DiceLoss:医学影像分割的经典损失
Dice Loss 广泛应用于医学图像分割任务。Dice 系数用于度量集合间的相似程度,在语义分割中可理解为当前模型与真实模型在真实世界中的相似度。其计算过程包括预测分割图与 GT 分割图的逐点相乘、对乘积结果逐位置累加求和,最终以1 - Dice作为损失输出,即:
Dice = 1 - 2(|X∩Y| / (|X| + |Y|))可引入 Laplacian 平滑系数smooth,同时加在分子与分母上,既避免除零异常,又能抑制过拟合:
Dice_smooth = 1 - 2((|X∩Y| + smooth) / (|X| + |Y| + smooth))class paddleseg.models.losses.DiceLoss( ignore_index = 255, smooth = 0. )参数说明
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ignore_index | int64,可选 | 255 | 标注图中被忽略的像素值,不参与梯度计算 |
smooth | float,可选 | 0 | 平滑参数,可加在分子分母上防止除零异常;也可设置更大的平滑值(Laplacian 平滑)以避免过拟合 |
DualTaskLoss:双任务一致性的半监督约束
DualTaskLoss 用于半监督学习,通过双任务一致性来约束模型,强化多个任务之间的一致性。其实现位于 gscnn_dual_task_loss.py,与 GSCNN(Gated Shape CNN)架构配套使用。
class paddleseg.models.losses.DualTaskLoss( ignore_index = 255, tau = 0.5 )参数说明
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ignore_index | int64 | 255 | 标注图中被忽略的像素值,不参与梯度计算 |
tau | float | 0.5 | Gumbel softmax 采样的温度参数 tau |
EdgeAttentionLoss:边缘检测与注意力机制的结合
EdgeAttentionLoss 适用于编码器提取边缘、解码器进行加权聚合的多任务训练场景,是将边缘检测与注意力机制相结合的多损失联合输出方法。注意:该损失面向多类别的logit与真实标注,而从 ohem_edge_attention_loss.py 的源码看,它内部以 BCE 方式在边缘概率与边缘标签间计算损失,并与边缘注意力机制融合。
class paddleseg.models.losses.EdgeAttentionLoss( edge_threshold = 0.8, ignore_index = 255 )参数说明
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
edge_threshold | float | 0.8 | 像素值大于该阈值的像素被视为边缘 |
ignore_index | int64 | 255 | 标注图中被忽略的像素值,不参与梯度计算 |
L1Loss 与 MSELoss:回归型损失
L1Loss(L1 范数损失)用于计算最小绝对值偏差,目标是最小化估计值与真实值之间绝对差的总和,可选择 reduction 策略对损失直接计算结果做进一步处理。
class paddleseg.models.losses.L1Loss( reduction = 'mean', ignore_index = 255 )MSELoss(均方误差损失)计算模型预测值与样本真实值之间距离平方的平均值。
class paddleseg.models.losses.MSELoss( reduction = 'mean', ignore_index = 255 )两者参数一致:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
reduction | str,可选 | 'mean' | 输出的归约方式,候选值为'none'|'mean'|'sum'。'none'返回未归约的逐元素损失;'mean'返回归约后的均值损失;'sum'返回归约后的求和损失 |
ignore_index | int | 255 | 标注图中被忽略的像素值,不参与梯度计算 |
OhemCrossEntropyLoss:在线难样本挖掘
OHEM(Online Hard Example Mining)旨在处理难样本。在某些情况下存在类别不均衡,且标注所有像素困难甚至不可能,这会严重限制模型性能。OHEM 算法根据输入模型的样本损失来区分难样本——这些难样本分类精度差、会产生更大的损失,从而聚焦训练资源。
class paddleseg.models.losses.OhemCrossEntropyLoss( thresh = 0.7, min_kept = 10000, ignore_index = 255 )参数说明
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
thresh | float,可选 | 0.7 | OHEM 的阈值 |
min_kept | int,可选 | 10000 | 计算损失函数时保留的最少像素数。min_kept与thresh配合使用:若thresh设置过高,可能导致本轮迭代中损失函数没有输入值,因此设置该值可保证至少 topmin_kept个元素不会被过滤掉 |
ignore_index | int64,可选 | 255 | 标注图中被忽略的像素值,不参与梯度计算 |
源码补充:从 ohem_cross_entropy_loss.py 可见,该实现同时提供了可选的weight参数(类别重缩放权重,默认None),并维护EPS = 1e-5防止 softmax 数值不稳定;源码中还针对 NPU、MLU 设备做了适配判断(_IS_NPU、_IS_MLU),说明该损失支持在多种硬件后端上训练。
OhemEdgeAttentionLoss:难样本 + 边缘注意力
当类别不均衡导致难样本问题时,若还想提升边缘提取的性能,可选用该损失。它在 EdgeAttentionLoss 的基础上叠加了 OHEM 机制,既保留边缘注意力结构,又只对难样本计算损失。
class paddleseg.models.losses.OhemEdgeAttentionLoss( edge_threshold = 0.8, thresh = 0.7, min_kept = 5000, ignore_index = 255 )参数说明
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
edge_threshold | float,可选 | 0.8 | 像素值大于该阈值的像素被视为边缘 |
thresh | float,可选 | 0.7 | OHEM 的阈值 |
min_kept | int,可选 | 5000 | 计算损失时保留的最少像素数,与thresh配合防止过滤掉全部像素(注意其默认值 5000 小于 OhemCrossEntropyLoss 的 10000) |
ignore_index | int64,可选 | 255 | 标注图中被忽略的像素值,不参与梯度计算 |
SemanticConnectivityLoss:面向连通性的语义损失
SCL(Semantic Connectivity-aware Learning)框架引入 SC Loss(Semantic Connectivity-aware Loss),从连通性(connectivity)的角度提升分割结果质量,支持多类分割。该工作出自 "PP-HumanSeg: Connectivity-Aware Portrait Segmentation with a Large-Scale Teleconferencing Video Dataset"(WACV 2022 workshop,arXiv:2112.07146)。
其运行流程分为两步:
- 连通分量计算(Connected Components Calculation)
- 连通分量匹配与 SC Loss 计算(Connected Components Matching and SC Loss Calculation)
class paddleseg.models.losses.SemanticConnectivityLoss( ignore_index = 255, max_pred_num_conn = 10, use_argmax = True )参数说明
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ignore_index | int | 255 | 标注图中被忽略的像素值,不参与梯度计算 |
max_pred_num_conn | int | 10 | 预测连通分量的最大数量。训练初期连通分量数量庞大、计算非常耗时,因此需要限制预测连通分量的最大数量,其余部分不参与计算 |
use_argmax | bool | True | 是否对 logits 使用 argmax 得到类别预测 |
Lovasz 系列损失:直接优化 mIoU 的利器
在图像分割任务中经常出现类别分布不均衡的情况,例如工业产品缺陷检测、道路提取、病灶区域提取等场景。Lovasz loss 正是为解决这一问题而设计的:它基于子模损失(submodular losses)的凸 Lovasz 扩展,直接优化神经网络的均值 IoU 损失。根据分割目标类别数,Lovasz loss 分为两种:
- Lovasz hinge loss:适用于二分类问题(实现见 paddleseg/models/losses/lovasz_loss.py 中的
LovaszHingeLoss); - Lovasz softmax loss:适用于多分类问题(同一文件中的
LovaszSoftmaxLoss)。
该工作发表于 CVPR 2018(Berman M, Rannen Triki A, Blaschko M B, "The Lovász-Softmax loss: a tractable surrogate for the optimization of the intersection-over-union measure in neural networks", Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2018: 4413-4421)。
源码要点:LovaszSoftmaxLoss.forward先对 logits 沿类别轴做softmax,再用flatten_probas将概率与标签展平并剔除ignore_index像素,最后调用lovasz_softmax_flat计算损失;它支持classes参数('all' 表示平均所有类别,'present' 表示只平均标签中出现的类别,或传入类别列表)。LovaszHingeLoss则针对二分类使用 Jaccard hinge 损失。
Lovasz loss 的两种推荐训练方式
注意:通常的直接训练方式效果不佳,官方推荐以下两种训练方法:
- 与交叉熵(或 BCE)加权组合使用:通过
MixedLoss类选择训练期间的损失函数,用coef参数对不同损失加权,灵活调整训练参数; - 两阶段训练:先用交叉熵或 BCE 训练,再用 lovasz softmax / hinge 损失进行微调(finetuning)。
以方法 (1) 为例,一般网络只有一个输出 logit,配置示例如下:
Lovasz softmax loss 示例
loss: types: - type: MixedLoss losses: - type: CrossEntropyLoss - type: LovaszSoftmaxLoss coef: [0.8, 0.2] coef: [1]Lovasz hinge loss 示例
loss: types: - type: MixedLoss losses: - type: CrossEntropyLoss - type: LovaszHingeLoss coef: [1, 0.02] coef: [1]多输出网络示例(以 2 个输出为例,每个输出分别组合损失,外层coef控制各输出的权重):
loss: types: - type: MixedLoss losses: - type: CrossEntropyLoss - type: LovaszSoftmaxLoss coef: [0.8, 0.2] - type: MixedLoss losses: - type: CrossEntropyLoss - type: LovaszSoftmaxLoss coef: [0.8, 0.2] coef: [1, 0.4]实验对比一:Lovasz softmax loss(Cityscapes 多分类)
以经典的 Cityscapes 数据集(19 个类别)为例,其类别并不均衡:road、building等类别非常常见,而fence、motorcycle、wall等相对稀少。官方对比了 lovasz softmax loss 与 softmax loss 的效果,模型使用 OCRNet、backbone 为 HRNet w18。
Lovasz loss 训练命令:
CUDA_VISIBLE_DEVICES=0,1,2,3 python -u -m paddle.distributed.launch tools/train.py \ --config configs/ocrnet/ocrnet_hrnetw18_cityscapes_1024x512_160k_lovasz_softmax.yml \ --use_vdl --num_workers 3 --do_eval交叉熵训练命令(对照组):
CUDA_VISIBLE_DEVICES=0,1,2,3 python -u -m paddle.distributed.launch tools/train.py \ --config configs/ocrnet/ocrnet_hrnetw18_cityscapes_1024x512_160k.yml \ --use_vdl --num_workers 3 --do_eval实验中 mIoU 曲线如下(蓝色曲线为 lovasz softmax loss + cross entropy loss,绿色曲线为 cross entropy loss,提升约 1%):
可以看出,使用 lovasz softmax loss 后,精度曲线整体高于原始精度。
| Loss | best mIoU |
|---|---|
| cross entropy loss | 80.46% |
| lovasz softmax loss + cross entropy loss | 81.53% |
实验对比二:Lovasz hinge loss(DeepGlobe 道路提取二分类)
以道路提取任务为例,基于 MiniDeepGlobeRoadExtraction 数据集与交叉熵损失进行对比实验。该数据集来自 DeepGlobe CVPR2018 Challenge 的 Road Extraction 单项,训练数据中道路仅占 4.5%,在整个图片中占比很小,是典型的类别不均衡场景。实验从 Road Extraction 训练集中随机选取 800 张作为训练集、200 张作为验证集,构造了小型道路提取数据集 MiniDeepGlobeRoadExtraction(训练脚本运行时会自动下载数据集)。模型同样使用 OCRNet + HRNet w18。
Lovasz loss 训练命令:
CUDA_VISIBLE_DEVICES=0,1,2,3 python -u -m paddle.distributed.launch tools/train.py \ --config configs/ocrnet/ocrnet_hrnetw18_road_extraction_768x768_15k_lovasz_hinge.yml \ --use_vdl --num_workers 3 --do_eval交叉熵训练命令(对照组):
CUDA_VISIBLE_DEVICES=0,1,2,3 python -u -m paddle.distributed.launch tools/train.py \ --config configs/ocrnet/ocrnet_hrnetw18_road_extraction_768x768_15k.yml \ --use_vdl --num_workers 3 --do_eval实验中 mIoU 曲线如下(紫色曲线为 lovasz hinge loss + cross entropy loss,蓝色曲线为 cross entropy loss,提升约 0.5%):
使用 lovasz hinge loss 后,精度曲线整体高于原始精度。
| Loss | best mIoU |
|---|---|
| cross entropy loss | 78.69% |
| lovasz hinge loss + cross entropy loss | 79.18% |
MixedLoss:不修改网络代码的多损失加权
PaddleSeg 中每个损失函数对应网络的一个 logit 输出。如果想把多个损失函数应用于某一网络输出,通常需要修改网络代码;而MixedLoss允许网络对多个损失函数的结果进行加权,只需以模块化形式加载即可实现混合损失训练。
class paddleseg.models.losses.MixedLoss(losses, coef)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
losses | list of nn.Layer | 由多个损失类组成的列表 |
coef | float/int 列表 | 多个损失的加权系数 |
返回值:MixedLoss的可调用对象。
源码要点:从 mixed_loss.py 的实现可以看到,构造函数会做严格校验:losses必须是 list、coef必须是 list,且两者长度必须相等,否则抛出TypeError/ValueError。forward(logits, labels)会依次对每个子损失计算输出并乘以其对应系数coef[i],返回加权后的损失列表——这也解释了外层coef为何是与网络输出数量对应的列表。
实战选型建议与注意事项
- 类别不均衡(工业缺陷、道路、病灶等小目标占比极低):优先考虑 Lovasz 系列(直接优化 mIoU)或
OhemCrossEntropyLoss(聚焦难样本),建议与CrossEntropyLoss/BCELoss加权组合,参考前文 Lovasz 实验中的coef取值; - 医学影像分割:
DiceLoss是经典选择,可设置smooth平滑参数防止除零并抑制过拟合; - 边缘敏感任务 / 多任务(边缘 + 分割):使用
EdgeAttentionLoss或OhemEdgeAttentionLoss(难样本版本),注意edge_threshold控制边缘判定阈值; - 人像分割等对连通性敏感的任务:可尝试
SemanticConnectivityLoss,训练初期建议保持max_pred_num_conn较小(默认 10)以控制连通分量计算的耗时; - 半监督 / 多任务一致性:
DualTaskLoss配合 GSCNN 等双任务架构使用,tau控制 Gumbel softmax 采样温度; - 忽略像素约定:所有损失统一以
ignore_index = 255标记不可标注/难标注像素,这些像素不参与梯度计算,实际使用时需与数据标注约定保持一致。
参考与延伸阅读
- 各损失的中文版详细文档:见 docs/module/loss/ 目录下对应
*_cn.md文件(如 losses_cn.md); - 损失源码目录:paddleseg/models/losses/,组件注册机制见 paddleseg/cvlibs/manager.py;
- 实际配置示例:Lovasz softmax 见 ocrnet_hrnetw18_cityscapes_1024x512_160k_lovasz_softmax.yml,Lovasz hinge 见 ocrnet_hrnetw18_road_extraction_768x768_15k_lovasz_hinge.yml;
- 训练入口:tools/train.py,支持
--config、--use_vdl、--num_workers、--do_eval等参数; - Lovasz 原理:Berman et al., CVPR 2018(The Lovász-Softmax loss);SCL 原理:PP-HumanSeg(WACV 2022 workshop, arXiv:2112.07146)。
- 人工智能
- 计算机视觉
- 预训练
【免费下载链接】PaddleSeg
Easy-to-use image segmentation library with awesome pre-trained model zoo, supporting wide-range of practical tasks in Semantic Segmentation, Interactive Segmentation, Panoptic Segmentation, Image Matting, 3D Segmentation, etc.
相关推荐
gs-quant 从零到一:卡尔曼滤波价差套利实战
gs quant 从零到一:卡尔曼滤波价差套利实战 2023 03 07,铁矿石单日暴涨 4%,螺纹钢 铁矿石的固定布林带价差策略直接打穿止损。把均值换成动态估
后端数据库文档数据库SpeechBrain 在 RescueSpeech 上的噪声鲁棒语音识别:SepFormer 增强 + Whisper ASR 联合微调实战
SpeechBrain 在 RescueSpeech 上的噪声鲁棒语音识别:SepFormer 增强 + Whisper ASR 联合微调实战 导读 本文基于
人工智能计算机视觉预训练X6 Edges: A Complete Guide to Adding, Configuring, and Customizing Connections
X6 Edges: A Complete Guide to Adding, Configuring, and Customizing Connections 本
前端图形学
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考