Example #1
0
def test_original_class_probability():
    predictions = np.array([0.1, 0.5, 0.7, 10.0, 0.4])

    c = criteria.OriginalClassProbability(0.1)
    assert c.is_adversarial(predictions, 0)
    assert c.is_adversarial(predictions, 1)
    assert c.is_adversarial(predictions, 2)
    assert not c.is_adversarial(predictions, 3)
    assert c.is_adversarial(predictions, 4)

    assert "0.1" in c.name()
Example #2
0
def test_combined_criteria():
    c1 = criteria.Misclassification()
    c2 = criteria.OriginalClassProbability(0.2)
    c3 = c1 & c2

    probabilities = np.array([0.09, 0.11, 0.39, 0.41])
    predictions = np.log(probabilities)

    for i in range(len(predictions)):
        b1 = c1.is_adversarial(predictions, i)
        b2 = c2.is_adversarial(predictions, i)
        b3 = c3.is_adversarial(predictions, i)

        assert (b1 and b2) == b3

    assert c1.name() == "Top1Misclassification"
    assert c2.name() == "OriginalClassProbability-0.2000"
    assert c3.name() == c2.name() + "__" + c1.name()