基准解释方法。

bim的Python项目详细描述


BIM-基准解释方法

此存储库包含用于基准测试的数据集、模型和度量 文中所述的解释性方法(BIM)

  • 标题:“BIM:对可解释性方法的定量评估” 有基本事实“
  • 作者:Sherry(Mengjiao)Yang,Be Kim

使用此库时,请引用:

@Article{BIM2019,
  title = {{BIM: Towards Quantitative Evaluation of Interpretability Methods with Ground Truth}},
  author = {Yang, Mengjiao and Kim, Been},
  year = {2019}
}

设置

从这个存储库的主目录运行以下命令来安装python 依赖项,下载bim模型,下载MSCOCOMiniPlaces,并构造bim 数据集。

pip install bim
source scripts/download_models.sh
source scripts/download_datasets.sh
python scripts/construct_bim_dataset.py

数据集

data/objdata/scene中的图像相同,但具有对象和场景 分别标注,如上图所示。val_loc.txt记录 对象的左上角和右下角,val_mask具有二进制 验证集中对象的掩码。附加集合及其用法是 如下表所述。

NameTrainingValidationUsageDescription
^{}90,00010,000Model contrastObjects and scenes with object labels
^{}90,00010,000Model contrast & Input dependenceObjects and scenes with scene labels
^{}90,00010,000Input dependenceScene-only images with scene labels
^{}-200Relative model contrastDog in bedroom labeled as bedroom
^{}-100Input independenceScene-only images of bamboo forest
^{}-100Input independenceBamboo forest with functionally insignificant dog patch

型号

models/objmodels/scenemodels/scene_only中的模型在 ^分别为{}、data/scenedata/scene_only。模型 models/scenei对于i中的{1...10}在添加狗的图像上进行训练 到i场景类,而rest场景类不包含任何添加的 物体。所有模型都在tensorflow中 SavedModel格式。

指标

bim度量比较解释性方法在模型(模型)之间的表现。 对比度),跨同一模型的输入(输入依赖),以及跨 功能等效输入(输入独立)。

模型对比度得分

给定包含对象和场景的图像,模型对比度测量 在对象标签上训练的模型和 在场景标签上训练的模型。

输入依赖率

给定一个在场景标签上训练的模型,输入相关性度量 对象的添加导致区域被属性化的输入 不那么重要。

输入独立率

给定一个仅在场景图像上训练的模型,输入独立性度量 功能不重要的补丁(如狗)的输入百分比 不影响解释。

评价显著性方法

要在随机选择的10幅图像上计算模型对比度得分(MCS),可以 运行

python bim/metrics.py --metrics=MCS --num_imgs=10

要计算输入依赖率(idr),请将--metrics更改为IDR。计算 输入独立率(IIR),首先需要构造一组 运行

python scripts/construct_delta_patch.py

然后通过运行

python bim/metrics.py --metrics=IIR --num_imgs=10

评估TCAV

TCAV是全局概念属性 一种方法,其mcs可通过比较特定 对象模型和场景模型的对象概念。运行以下命令 计算对象模型的dog概念的tcav得分。

python bim/run_tcav.py --model=obj

免责声明

这不是官方支持的谷歌产品。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JNLP无法在浏览器中正确启动(与dtjava.js一起部署)   在执行下一个方法之前,java将等待线程执行结束   java如何将另一个LayoutManager应用于JComboBox?(多栏JComboBox尝试)   使用jPBC在java中实现双线性配对   java在使用@RequestMapping注释时获取请求的值(URL)   java如何控制流量   java如何获取IFC对象的绝对坐标?   java目标服务器无法使用htmlunit和tor响应异常   java需要帮助创建一个循环结构来运行我的程序   java有可能拥有一个Android APK并在应用程序中更改构建变体吗?   在Sphinx4中运行Ant的java   Java:从ArrayList获取子列表的有效方法   java如何使在循环内部创建的数组在循环外部工作?   apache poi通过java中的XSSF表从单元格读取日期值   安卓 java自己的SeqLock实现,避免spinlock会更好吗?   java的并发底层方法。util。同时发生的预定未来   java比较方法违反了它的一般约定,如何使它具有可传递性?   使用JAVA定向指定类的DB导出子类   一个方法中的java更改特定imageView