# Dl Framework Robustness Eval

> Evaluates the robustness of deep learning models trained on different frameworks (TensorFlow, Theano, Torch) against adversarial attacks. It measures how well models maintain correct predictions when subjected to white-box, black-box, and decision-based perturbations. Use when the user wants to benchmark on MNIST, CIFAR-10, or asks about evaluating this task. Reports robustness indicator R(m_i).

- Skill: `qhjqhj00/dl-framework-robustness-eval` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/dl-framework-robustness-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/dl-framework-robustness-eval/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/qhjqhj00/dl-framework-robustness-eval

---


# dl-framework-robustness-eval

> An Orchestrated Empirical Study on Deep Learning Frameworks and Platforms — Qianyu Guo et al. (2018) (arXiv:1811.05187, 2018)

## What this evaluates

Evaluates the robustness of deep learning models trained on different frameworks (TensorFlow, Theano, Torch) against adversarial attacks. It measures how well models maintain correct predictions when subjected to white-box, black-box, and decision-based perturbations.

## Datasets

- **MNIST** — total ?; splits: test (-1)
- **CIFAR-10** — total ?; splits: test (-1)

## Metrics

- `robustness indicator R(m_i)` **(primary)** — range: other
  - R(m_i) = sum_{j=1 to k} P(m_i, A_j), where P normalizes the attack success rate S_A^m_i between the min and max success rates across all compared models for attack A_j. If min equals max, P is 0. Lower R indicates better robustness.

## Input / output format

**Input**: 1000 randomly selected correctly classified images from the validation/test set of MNIST or CIFAR-10.

**Output**: Model predictions (class labels) after applying adversarial perturbations generated by FGSM, Single-Pixel-Attack, and Boundary-Attack.

## Scoring recipe

```python
def compute_robustness_indicator(success_rates, models, attacks):
    R = {m: 0.0 for m in models}
    for A in attacks:
        rates = [success_rates[(m, A)] for m in models]
        min_r, max_r = min(rates), max(rates)
        for m in models:
            if min_r < max_r:
                R[m] += (success_rates[(m, A)] - min_r) / (max_r - min_r)
            else:
                R[m] += 0
    return R
```

## Common pitfalls

- The robustness indicator R(m_i) is relative to the specific set of models being compared in a given experiment, not an absolute score.
- Attack success rates must be averaged over 10 repetitions to reduce randomness before computing the indicator.
- Only images that are correctly predicted by all compared models are used as inputs for the attacks.

## Evidence (verbatim from paper)

> For each dataset, we randomly select 1000 images, which are predicted correctly by all the models, as the inputs of aforementioned attacks. To reduce randomness during the attack, each attack is repeated 10 times. ... R(m_i) quantifies the robustness of m_i in terms of attacks A_1,...,A_n, also known as the robustness indicator. The smaller value R(m_i) is, the better robustness it exhibits.

## Citation

```bibtex
@misc{guo2018orchestrated,
  title={An Orchestrated Empirical Study on Deep Learning Frameworks and Platforms},
  author={Qianyu Guo et al. (2018)},
  year={2018},
  note={arXiv:1811.05187}
}
```

- arXiv: 1811.05187

