论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文

  • 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。
  • API 库覆盖低,因为各个 API 都是在各种具体场景下使用。

Muffin首先生成DAG作为结构信息,然后利用一种贪婪的层选择算法来生成层信息。通过这种方式,Muffin能够生成多样化的DL模型。为了进行差异性测试,Muffin在模型训练阶段执行数据跟踪分析。特别是,Muffin从不同的训练阶段(即正向计算(FC)、损失计算(LC)和反向计算(BC))收集数据跟踪。然后,它根据一套提出的指标来检测不同库之间的不一致性,这些指标衡量连续层的输出变化。
在这里插入图片描述
借鉴 NAS 生成模版,生成 chain structure with skips、cell-based structure(structure information),同时确保生成的 DAG,只有一个入度为 0 的顶点作为输入层,只有一个出度为 0 的顶点作为输出层,没有孤立点。在逐个实例化时,考虑输入数量限制、输入/输出形状限制,并且为了增加拓扑多样性,设计了基于适应度比例选择的方法。 s = 1 c + 1 p = s ∑ k = 1 r s k s=\frac{1}{c+1} \quad p=\frac{s}{\sum_{k=1}^rs_k} s=c+11p=k=1rsks
同一层输出差异: D ( X , Y ) = m a x m ( ∣ x m − y m ∣ ) D(X,Y)=max_m(|x_m-y_m|) D(X,Y)=maxm(x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值