Exemple #1
0
    def test_incompatible_output_dimensions(self):
        """Compares to the scikit-learn RandomForestRegressor classifier.
        """
        # create dataset with 4 outputs
        X = np.random.rand(10, 20)
        y = np.random.randint(low=0, high=3, size=(10, 4))

        # create a model with 2 outputs
        def build_fn_clf():
            """Builds a Sequential based classifier."""
            model = keras.models.Sequential()
            model.add(keras.layers.Dense(20, input_shape=(20,)))
            model.add(keras.layers.Activation("relu"))
            model.add(keras.layers.Dense(np.unique(y).size))
            model.add(keras.layers.Activation("softmax"))
            model.compile(
                optimizer="sgd",
                loss="categorical_crossentropy",
                metrics=["accuracy"],
            )
            return model

        clf = wrappers.KerasClassifier(build_fn=build_fn_clf)

        with pytest.raises(RuntimeError):
            clf.fit(X, y)
Exemple #2
0
 def test_classify_build_fn(self):
     clf = wrappers.KerasClassifier(
         build_fn=build_fn_clf,
         hidden_dim=HIDDEN_DIM,
         batch_size=BATCH_SIZE,
         epochs=EPOCHS,
     )
     self.check_sample_weights_work(clf)
Exemple #3
0
 def test_pprint(self):
     clf = wrappers.KerasClassifier(
         build_fn=build_fn_clf,
         hidden_dim=HIDDEN_DIM,
         batch_size=BATCH_SIZE,
         epochs=EPOCHS,
     )
     print(clf)
Exemple #4
0
    def test_classify_build_fn(self):
        """Tests a classification task for errors."""
        clf = wrappers.KerasClassifier(
            build_fn=build_fn_clf,
            hidden_dim=HIDDEN_DIM,
            batch_size=BATCH_SIZE,
            epochs=EPOCHS,
        )

        assert_classification_works(clf)
Exemple #5
0
    def test_classify_class_build_fn(self):
        """Tests for errors using a class implementing __call__."""
        class ClassBuildFnClf:
            def __call__(self, hidden_dim):
                return build_fn_clf(hidden_dim)

        clf = wrappers.KerasClassifier(
            build_fn=ClassBuildFnClf(),
            hidden_dim=HIDDEN_DIM,
            batch_size=BATCH_SIZE,
            epochs=EPOCHS,
        )

        assert_classification_works(clf)
Exemple #6
0
    def test_classify_build_fn(self):
        """Tests a classification task for errors."""
        clf = wrappers.KerasClassifier(
            build_fn=build_fn_clf,
            hidden_dim=HIDDEN_DIM,
            batch_size=BATCH_SIZE,
            epochs=EPOCHS,
        )

        X = np.random.rand(10, 20)

        with pytest.raises(NotFittedError):
            clf.predict(X)
        with pytest.raises(NotFittedError):
            clf.predict_proba(X)
Exemple #7
0
 def test_invalid_build_fn(self):
     clf = wrappers.KerasClassifier(build_fn="invalid")
     with pytest.raises(TypeError):
         clf.fit(np.array([[0]]), np.array([0]))