在Quantus中开发自定义评估指标:继承Metric基类完整指南(含测试与文档)

发布时间:2026/10/21 9:08:40

在Quantus中开发自定义评估指标:继承Metric基类完整指南(含测试与文档) 在Quantus中开发自定义评估指标继承Metric基类完整指南含测试与文档【免费下载链接】Quantus[JMLR 2023] Quantus is an eXplainable AI toolkit for responsible evaluation of neural network explanations项目地址: https://gitcode.com/gh_mirrors/qu/QuantusQuantus 是一款发表于 JMLR 2023 的可解释 AIXAI工具包专用于对神经网络解释进行负责任的量化评估。如果你希望向 Quantus 贡献一个自定义评估指标本文带你完整走一遍继承Metric基类的标准流程从类设计、评估逻辑实现到单元测试与文档补充一篇搞定。 先搞懂Quantus 需要什么样的自定义指标Quantus 内置六大类评估指标覆盖解释质量的不同维度Faithfulness忠实性解释是否真实反映模型决策Robustness鲁棒性解释对输入扰动的稳定性Localisation定位性解释能否定位到关键区域Complexity简洁性解释是否稀疏、高效Randomisation随机化检验排除碰巧有效的解释Axiomatic公理化检验公理属性是否满足如果你的研究需要一种库中尚未提供的度量方式就可以通过继承Metric基类位于 quantus/metrics/base.py来扩展让新指标无缝接入 Quantus 的统一 API。⚡ 一键搭建 Quantus 开发环境先克隆仓库并用 Tox 配置可编辑安装的开发环境git clone https://gitcode.com/gh_mirrors/qu/Quantus cd Quantus python3 -m pip install tox python3 -m tox devenv source venv/bin/activateTox 会自动完成依赖安装与可编辑安装之后即可直接修改quantus/下的源码并运行测试。 读懂 Metric 基类自定义评估指标的核心结构所有指标都继承自Metric泛型基类。当你调用metric(model..., x_batch..., ...)时基类会按固定流水线执行general_preprocess()自动处理 channel-first 转换、模型包装、解释生成、取绝对值abs与归一化normalise等通用预处理evaluate_batch()这是你要实现的抽象方法编写你自己的逐样本评估逻辑custom_postprocess() 按aggregate_func聚合得分如np.mean因此自定义指标只需实现评估核心批次处理、归一化、进度条、警告等脏活全部由基类代劳。参考实现见 quantus/metrics/complexity/sparseness.py 中的Sparseness指标。 五步完成自定义指标开发从类定义到注册第一步在对应评估类别目录创建指标文件确认你的指标属于哪个类别然后在对应的quantus/metrics/类别/文件夹中新建一个 Python 文件六大类别见上文。第二步声明 5 个类属性继承 Metricfrom quantus.helpers.enums import ( DataType, ModelType, ScoreDirection, EvaluationCategory ) from quantus.metrics.base import Metric class MyCustomMetric(Metric[List[float]]): 指标的一句话描述附 References 与 Assumptions。 name MyCustomMetric data_applicability {DataType.IMAGE, DataType.TABULAR} model_applicability {ModelType.TORCH, ModelType.TF} score_direction ScoreDirection.HIGHER evaluation_category EvaluationCategory.COMPLEXITY这 5 个类属性决定了指标如何被 Quantus 识别枚举值定义在 quantus/helpers/enums.py。__init__中沿用abs、normalise、return_aggregate、aggregate_func等标准参数并调用super().__init__(...)即可。第三步实现 evaluate_batch 评估逻辑这是唯一的必写核心方法输入是整个批次返回每个样本一个分数def evaluate_batch(self, x_batch: np.ndarray, a_batch: np.ndarray, **kwargs) - List[float]: # 在此实现你的度量逻辑例如 # 1) 扁平化 a_batcha_batch.reshape(batch_size, -1) # 2) 逐样本计算得分 # 3) 返回与 batch_size 等长的得分列表 ...批量接口batched API由基类统一分派天然获得并行计算的性能收益。第四步把指标注册到包入口在你的类别目录__init__.py中加一行导入例如参照 quantus/metrics/complexity/init.py。顶层 quantus/metrics/init.py 使用星号导入注册后即可通过from quantus.metrics import MyCustomMetric直接使用。第五步调用并验证得分metric MyCustomMetric(absTrue, normaliseTrue, return_aggregateTrue) scores metric(modelmodel, x_batchx_batch, y_batchy_batch, a_batcha_batch)✅ 为自定义指标编写单元测试的完整流程Quantus 使用 pytest 测试目标是接近 100% 的代码覆盖率。在tests/metrics/下为对应类别的测试文件中添加用例例如 tests/metrics/test_complexity_metrics.pypytest.mark.complexity def test_my_custom_metric(almost_uniform_1d): scores MyCustomMetric(disable_warningsTrue)( modelNone, x_batchalmost_uniform_1d[x_batch], y_batchalmost_uniform_1d[y_batch], a_batchalmost_uniform_1d[a_batch], ) assert all(0.0 s 1.0 for s in scores)测试编写要点用pytest.mark.类别打上类别标记若使用新标记记得在 pytest.ini 中登记用lazy_fixture复用conftest.py中现成的模型与数据夹具无需自建用pytest.mark.parametrize覆盖abs/normalise等不同参数组合按类别跑测试python3 -m tox run -e py39 -- -m complexity -s 补充指标文档docstring 与 rst 文件类级 docstring必须包含指标详细描述、References原始论文引用、Assumptions格式参照 quantus/metrics/complexity/sparseness.py每个方法含__init__、__call__、evaluate_batch都要有 numpydoc 风格的参数与返回值说明在 docs/source/docs_api/ 下按现有模式新增你的指标的.rst页面参考 quantus.metrics.complexity.sparseness.rst并挂入 quantus.metrics.rst 索引代码风格遵循 PEP-8用black行宽 88与flake8检查后再提交完整贡献规范可查阅 CONTRIBUTING.md 中的 Contributing a New Metric 章节。 提测前检查清单5 个类属性齐全score_direction与得分含义一致evaluate_batch对每个样本返回一个分数已在类别__init__.py中注册顶层导入可用测试全部通过python3 -m tox run代码通过 black 与 flake8 检查docstring 与.rst文档已补齐至此你的自定义评估指标已经可以像Sparseness、Infidelity等内置指标一样被用户一行代码调用 。【免费下载链接】Quantus[JMLR 2023] Quantus is an eXplainable AI toolkit for responsible evaluation of neural network explanations项目地址: https://gitcode.com/gh_mirrors/qu/Quantus创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/19 21:23:21

随机信号参数建模:从AR模型到实战应用全解析

1. 项目概述:从“听天由命”到“心中有数” “随机信号”这个词听起来有点玄乎,但说白了,就是那些我们无法用一个确定公式来精确预测的信号。比如,你手机麦克风录下的环境噪音、股票市场的每日涨跌、或者心电图里那些细微的波动&a…

2026/10/21 8:55:25

1. ghp-import 是什么:一行描述“文档 → 网站“

1. ghp-import 是什么:一行描述"文档 → 网站" 【免费下载链接】ghp-import Easily import docs to your gh-pages branch. 项目地址: https://gitcode.com/gh_mirrors/gh/ghp-import ghp-import 是一个小巧的 Python 文档导入工具(当前…

2026/10/19 9:18:04

AR模型核心原理与三大参数估计算法详解:从Yule-Walker到Burg算法

1. 项目概述:从“黑箱”到“白箱”的信号理解之旅在信号处理、金融分析乃至语音识别这些看似不相关的领域里,我们常常面对一个共同的挑战:手里只有一串随时间变化的、看似杂乱无章的数据序列,我们称之为“随机信号”。比如一段录音…

2026/10/21 17:21:37

Token级策略梯度:生成式模型强化学习的逐步优化指南

1. 为什么Token级策略梯度会进入视野 我第一次做生成式模型的强化学习微调时,用的是最朴素的写法:模型把整条回复生成完,奖励模型给一个总分数,然后把这个分数乘到整条序列所有token的log概率梯度上,更新一次参数。刚开…

2026/10/21 17:21:37

电流互感器二次开路:机理、危害识别与处置全解析

1. 这个“隐性杀手”到底藏在哪:先弄清楚电流互感器二次开路是什么 干过变电运维或者继保调试的人,多少都听过老前辈反复念叨一句话:“CT二次侧万万不能开路。”这话听起来像操作规程里的死规矩,但很多人其实没真正理解背后的分量…

2026/10/21 17:21:37

AI厂商能力对比:任务-约束匹配的四维评估法

1. 这不是一份“排行榜”,而是一张AI能力坐标图 最近在给某高校实验室做智能终端系统集成方案时,团队反复被一个问题卡住:明明选了参数最亮眼的模型,实际部署到产线质检环节,漏检率反而比上一代高了7%。后来我们把五家…

2026/10/21 17:21:37

专科生AI论文工具测评:9款实用网站与避坑指南

全网最全专科生必备TOP9AI论文网站测评,这个标题我一开始是持怀疑态度的。“全网最全”太容易注水,而专科生写论文的真实痛点,并不只是“找不到网站”,而是不知道哪一款适合自己:预算有限、时间紧凑、学术底子薄弱&…

2026/10/21 17:21:37

GEO取代SEO?2026年官网成为高等级信源的六步落地指南

最近和一位做了多年搜索生态的老朋友见面,他名片上印着三个头衔:GEO高级优化师、落地工程师、AIGC应用工程师。我第一反应是“又给自己贴新标签”,但聊了两个小时之后,我意识到这三个头衔背后其实是同一个信号:搜索行业…

2026/10/21 17:16:36

能力与德性动态平衡:量化团队风险,提前预警爆雷隐患

只盯能力不盯品行,团队迟早要出事:这套“动态平衡”框架把隐患提前算出来这些年不管是带团队、做项目评审,还是给自己做复盘,我都绕不开一个老问题:一个人(或一个团队)到底靠不靠谱?…

2026/10/21 4:53:08

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/21 0:00:35

交通流仿真实战:IDM跟驰与MOBIL换道模型参数调优与避坑指南

简介:这份资源是面向交通工程学习者与Python开发者的微观交通流仿真项目,核心实现智能驾驶模型(IDM)下的车辆跟驰与换道行为,可用于理解速度、密度与流量之间的动态关系,适合具备Python基础、希望深入交通模…

2026/10/21 0:00:35

揭穿智能体表面顺从:用追踪代码重建任务执行确定性

1. 表面顺从不是智能体的“礼貌”,而是任务执行链路上的隐性断点最近在调试一个跨平台长周期任务调度系统时,我反复遇到一种令人困惑的现象:智能体在用户指令发出后,几乎秒级响应“已收到”“正在处理”“请稍候”,UI上…

2026/10/21 0:00:35

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑