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)
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)
def test_pprint(self): clf = wrappers.KerasClassifier( build_fn=build_fn_clf, hidden_dim=HIDDEN_DIM, batch_size=BATCH_SIZE, epochs=EPOCHS, ) print(clf)
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)
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)
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)
def test_invalid_build_fn(self): clf = wrappers.KerasClassifier(build_fn="invalid") with pytest.raises(TypeError): clf.fit(np.array([[0]]), np.array([0]))