def test_save(self):
        path = "tmp"
        filename = "model.h5"

        classifier = get_classifier_bb()

        self.assertRaises(NotImplementedError, lambda: classifier.save(filename, path=path))
Пример #2
0
    def test_repr(self):
        classifier = get_classifier_bb()
        repr_ = repr(classifier)

        self.assertIn("BlackBoxClassifier", repr_)
        self.assertIn("clip_values=[  0. 255.]", repr_)
        self.assertIn("defences=None", repr_)
        self.assertIn("preprocessing=(0, 1)", repr_)
Пример #3
0
 def test_fit(self):
     classifier = get_classifier_bb()
     self.assertRaises(
         NotImplementedError,
         lambda: classifier.fit(self.x_train_mnist,
                                self.y_train_mnist,
                                batch_size=self.batch_size,
                                nb_epochs=2),
     )
Пример #4
0
    def test_repr(self):
        classifier = get_classifier_bb()
        repr_ = repr(classifier)

        self.assertIn("BlackBoxClassifier", repr_)
        self.assertIn("clip_values=[  0. 255.]", repr_)
        self.assertIn("defences=None", repr_)
        self.assertIn(
            "preprocessing=StandardisationMeanStd(mean=0, std=1, apply_fit=True, apply_predict=True)",
            repr_)
    def test_defences_predict(self):
        clip_values = (0, 1)
        fs = FeatureSqueezing(clip_values=clip_values, bit_depth=2)
        jpeg = JpegCompression(clip_values=clip_values, apply_predict=True)
        smooth = SpatialSmoothing()
        classifier = get_classifier_bb(defences=[fs, jpeg, smooth])
        self.assertEqual(len(classifier.preprocessing_defences), 3)

        predictions_classifier = classifier.predict(self.x_test_mnist)

        # Apply the same defences by hand
        x_test_defense = self.x_test_mnist
        x_test_defense, _ = fs(x_test_defense, self.y_test_mnist)
        x_test_defense, _ = jpeg(x_test_defense, self.y_test_mnist)
        x_test_defense, _ = smooth(x_test_defense, self.y_test_mnist)
        classifier = get_classifier_bb()
        predictions_check = classifier.predict(x_test_defense)

        # Check that the prediction results match
        np.testing.assert_array_almost_equal(predictions_classifier, predictions_check, decimal=4)
Пример #6
0
 def test_shapes(self):
     classifier = get_classifier_bb()
     predictions = classifier.predict(self.x_test_mnist)
     self.assertEqual(predictions.shape, self.y_test_mnist.shape)
     self.assertEqual(classifier.nb_classes, 10)
     self.assertEqual(predictions.shape, self.y_test_mnist.shape)