diff --git a/.travis.yml b/.travis.yml index 22ee86a9..da137cbb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,11 +12,11 @@ env: - KERAS_VERSION="2.2.5" TENSORFLOW_VERSION="1.13.1" - KERAS_VERSION="2.2.5" TENSORFLOW_VERSION="1.14.0" - # - KERAS_VERSION="2.2.5" TENSORFLOW_VERSION="2.0.0" + - KERAS_VERSION="2.2.5" TENSORFLOW_VERSION="2.0.0" - KERAS_VERSION="2.3.0" TENSORFLOW_VERSION="1.13.1" - KERAS_VERSION="2.3.0" TENSORFLOW_VERSION="1.14.0" - # - KERAS_VERSION="2.3.0" TENSORFLOW_VERSION="2.0.0" + - KERAS_VERSION="2.3.0" TENSORFLOW_VERSION="2.0.0" matrix: fast_finish: true diff --git a/examples/keras_examples/experiment_example.py b/examples/keras_examples/experiment_example.py index ba7a8069..900708c5 100644 --- a/examples/keras_examples/experiment_example.py +++ b/examples/keras_examples/experiment_example.py @@ -1,10 +1,10 @@ from hyperparameter_hunter import Environment, CVExperiment from hyperparameter_hunter.utils.learning_utils import get_breast_cancer_data import os.path -from keras.callbacks import ModelCheckpoint, ReduceLROnPlateau -from keras.layers import Dense, Activation, Dropout -from keras.models import Sequential -from keras.wrappers.scikit_learn import KerasClassifier +from tensorflow.keras.callbacks import ModelCheckpoint, ReduceLROnPlateau +from tensorflow.keras.layers import Dense, Activation, Dropout +from tensorflow.keras.models import Sequential +from tensorflow.keras.wrappers.scikit_learn import KerasClassifier def build_fn(input_shape=-1): diff --git a/examples/keras_examples/image_classification_example.py b/examples/keras_examples/image_classification_example.py index ca71883c..b6017c75 100644 --- a/examples/keras_examples/image_classification_example.py +++ b/examples/keras_examples/image_classification_example.py @@ -1,8 +1,8 @@ from hyperparameter_hunter import Environment, CVExperiment import pandas as pd -from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D, Reshape -from keras.models import Sequential -from keras.wrappers.scikit_learn import KerasClassifier +from tensorflow.keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D, Reshape +from tensorflow.keras.models import Sequential +from tensorflow.keras.wrappers.scikit_learn import KerasClassifier from sklearn.datasets import load_digits diff --git a/examples/keras_examples/mnist_example.py b/examples/keras_examples/mnist_example.py index f1d2b76f..b288fa59 100644 --- a/examples/keras_examples/mnist_example.py +++ b/examples/keras_examples/mnist_example.py @@ -9,10 +9,10 @@ raise import pandas as pd -from keras.datasets import mnist -from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D, Reshape -from keras.models import Sequential -from keras.wrappers.scikit_learn import KerasClassifier +from tensorflow.keras.datasets import mnist +from tensorflow.keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D, Reshape +from tensorflow.keras.models import Sequential +from tensorflow.keras.wrappers.scikit_learn import KerasClassifier ################################################## diff --git a/examples/keras_examples/multi_classification_example.py b/examples/keras_examples/multi_classification_example.py index 42d0a2d8..c97b752f 100644 --- a/examples/keras_examples/multi_classification_example.py +++ b/examples/keras_examples/multi_classification_example.py @@ -1,8 +1,8 @@ from hyperparameter_hunter import Environment, CVExperiment import pandas as pd -from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D, Reshape -from keras.models import Sequential -from keras.wrappers.scikit_learn import KerasClassifier +from tensorflow.keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D, Reshape +from tensorflow.keras.models import Sequential +from tensorflow.keras.wrappers.scikit_learn import KerasClassifier from sklearn.datasets import load_digits diff --git a/examples/keras_examples/optimization_example.py b/examples/keras_examples/optimization_example.py index 32401bf3..6b400016 100644 --- a/examples/keras_examples/optimization_example.py +++ b/examples/keras_examples/optimization_example.py @@ -2,10 +2,10 @@ from hyperparameter_hunter import Real, Integer, Categorical from hyperparameter_hunter.utils.learning_utils import get_breast_cancer_data import os.path -from keras.callbacks import ModelCheckpoint, ReduceLROnPlateau -from keras.layers import Dense, Activation, Dropout -from keras.models import Sequential -from keras.wrappers.scikit_learn import KerasClassifier +from tensorflow.keras.callbacks import ModelCheckpoint, ReduceLROnPlateau +from tensorflow.keras.layers import Dense, Activation, Dropout +from tensorflow.keras.models import Sequential +from tensorflow.keras.wrappers.scikit_learn import KerasClassifier def _build_fn_experiment(input_shape): diff --git a/hyperparameter_hunter/compat/keras_optimization_helper.py b/hyperparameter_hunter/compat/keras_optimization_helper.py index d621f713..881b364f 100644 --- a/hyperparameter_hunter/compat/keras_optimization_helper.py +++ b/hyperparameter_hunter/compat/keras_optimization_helper.py @@ -49,8 +49,8 @@ try: stderr = sys.stderr sys.stderr = open(os.devnull, "w") - from keras.callbacks import Callback as base_keras_callback - from keras.initializers import Initializer as BaseKerasInitializer + from tensorflow.keras.callbacks import Callback as base_keras_callback + from tensorflow.keras.initializers import Initializer as BaseKerasInitializer sys.stderr = stderr except ModuleNotFoundError: diff --git a/hyperparameter_hunter/i_o/result_reader.py b/hyperparameter_hunter/i_o/result_reader.py index d9e42fad..13dbfa86 100644 --- a/hyperparameter_hunter/i_o/result_reader.py +++ b/hyperparameter_hunter/i_o/result_reader.py @@ -734,7 +734,7 @@ def does_match_init_params_guidelines_multi(self, exp_id, params, score, locatio _model_params = deepcopy(self.model_params["model_init_params"]) if location == ("compile_params", "optimizer"): - from keras.optimizers import get as k_opt_get + from tensorflow.keras.optimizers import get as k_opt_get update_location = ("compile_params", "optimizer_params") # `update_location` = Path to hyperparameter whose default value depends on `location` @@ -900,8 +900,8 @@ def __init__( sort=sort, ) - from keras.callbacks import Callback as BaseKerasCallback - from keras.initializers import Initializer as BaseKerasInitializer + from tensorflow.keras.callbacks import Callback as BaseKerasCallback + from tensorflow.keras.initializers import Initializer as BaseKerasInitializer # noinspection PyUnusedLocal def _visit(path, key, value): diff --git a/hyperparameter_hunter/keys/makers.py b/hyperparameter_hunter/keys/makers.py index 3531707c..9d3e72a0 100644 --- a/hyperparameter_hunter/keys/makers.py +++ b/hyperparameter_hunter/keys/makers.py @@ -50,8 +50,8 @@ # Import Learning Assets ################################################## try: - from keras.callbacks import Callback as BaseKerasCallback - from keras.initializers import Initializer as BaseKerasInitializer + from tensorflow.keras.callbacks import Callback as BaseKerasCallback + from tensorflow.keras.initializers import Initializer as BaseKerasInitializer except ModuleNotFoundError: BaseKerasCallback = type("BaseKerasCallback", tuple(), {}) BaseKerasInitializer = type("BaseKerasInitializer", tuple(), {}) diff --git a/hyperparameter_hunter/models.py b/hyperparameter_hunter/models.py index 85f93137..66feba9c 100644 --- a/hyperparameter_hunter/models.py +++ b/hyperparameter_hunter/models.py @@ -33,7 +33,7 @@ import sklearn.utils as sklearn_utils try: - from keras import backend as K + from tensorflow.keras import backend as K except ImportError: K = None @@ -383,7 +383,7 @@ class probabilities in the first column, `do_predict_proba=0`. To use the second ) global load_model - from keras.models import load_model + from tensorflow.keras.models import load_model def initialize_model(self): """Create an instance of a model using :attr:`model_initializer`, with diff --git a/hyperparameter_hunter/optimization/protocol_core.py b/hyperparameter_hunter/optimization/protocol_core.py index 0762f2d6..8df11437 100644 --- a/hyperparameter_hunter/optimization/protocol_core.py +++ b/hyperparameter_hunter/optimization/protocol_core.py @@ -70,7 +70,7 @@ from skopt.utils import eval_callbacks try: - from keras import backend as K + from tensorflow.keras import backend as K except ImportError: K = None @@ -423,8 +423,8 @@ def set_dimensions(self): #################### Remap Extra Objects #################### if self.module_name == "keras": - from keras.initializers import Initializer as KerasInitializer - from keras.callbacks import Callback as KerasCB + from tensorflow.keras.initializers import Initializer as KerasInitializer + from tensorflow.keras.callbacks import Callback as KerasCB self.init_iter_attrs.append(lambda _p, _k, _v: isinstance(_v, KerasInitializer)) self.extra_iter_attrs.append(lambda _p, _k, _v: isinstance(_v, KerasCB)) diff --git a/hyperparameter_hunter/tracers.py b/hyperparameter_hunter/tracers.py index c072a1dd..e413f173 100644 --- a/hyperparameter_hunter/tracers.py +++ b/hyperparameter_hunter/tracers.py @@ -22,9 +22,10 @@ ################################################## # noinspection PyProtectedMember from inspect import signature, _empty, currentframe, getframeinfo +import abc -class ArgumentTracer(type): +class ArgumentTracer(abc.ABCMeta): """Metaclass to trace the default arguments and explicitly provided arguments of its descendants. It also has special provisions for instantiating dummy models if directed to""" diff --git a/tests/integration_tests/test_optimization_space.py b/tests/integration_tests/test_optimization_space.py index da6d62e1..854dc0a2 100644 --- a/tests/integration_tests/test_optimization_space.py +++ b/tests/integration_tests/test_optimization_space.py @@ -31,9 +31,9 @@ ################################################## # Import Learning Assets ################################################## -from keras.layers import Dense, Dropout -from keras.models import Sequential -from keras.wrappers.scikit_learn import KerasClassifier +from tensorflow.keras.layers import Dense, Dropout +from tensorflow.keras.models import Sequential +from tensorflow.keras.wrappers.scikit_learn import KerasClassifier ################################################## # Global Settings diff --git a/tests/smoke_tests/test_keras.py b/tests/smoke_tests/test_keras.py index 8cb368e1..3dde83dd 100644 --- a/tests/smoke_tests/test_keras.py +++ b/tests/smoke_tests/test_keras.py @@ -19,11 +19,11 @@ ################################################## # Import Learning Assets ################################################## -from keras.callbacks import ReduceLROnPlateau -from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D, Reshape -from keras.models import Sequential -from keras.wrappers.scikit_learn import KerasClassifier, KerasRegressor -from keras.initializers import glorot_normal, orthogonal, Orthogonal +from tensorflow.keras.callbacks import ReduceLROnPlateau +from tensorflow.keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D, Reshape +from tensorflow.keras.models import Sequential +from tensorflow.keras.wrappers.scikit_learn import KerasClassifier, KerasRegressor +from tensorflow.keras.initializers import glorot_normal, orthogonal, Orthogonal from sklearn.datasets import load_digits ################################################## diff --git a/tests/test_keras_helper.py b/tests/test_keras_helper.py index 93a10c0a..aa47925c 100644 --- a/tests/test_keras_helper.py +++ b/tests/test_keras_helper.py @@ -23,12 +23,12 @@ ################################################## # Import Learning Assets ################################################## -from keras import initializers -from keras import callbacks -from keras.layers import Dense, Dropout, Embedding, Flatten, SpatialDropout1D -from keras.losses import binary_crossentropy, mean_absolute_error -from keras.models import Sequential -from keras.optimizers import Adam, RMSprop +from tensorflow.keras import initializers +from tensorflow.keras import callbacks +from tensorflow.keras.layers import Dense, Dropout, Embedding, Flatten, SpatialDropout1D +from tensorflow.keras.losses import binary_crossentropy, mean_absolute_error +from tensorflow.keras.models import Sequential +from tensorflow.keras.optimizers import Adam, RMSprop ################################################## # Parametrization Helper Dicts diff --git a/tests/test_models.py b/tests/test_models.py index 73a40749..d692e6e0 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -13,7 +13,7 @@ # Import Learning Assets ################################################## try: - from keras.wrappers.scikit_learn import KerasClassifier, KerasRegressor + from tensorflow.keras.wrappers.scikit_learn import KerasClassifier, KerasRegressor except (ModuleNotFoundError, ImportError): KerasClassifier, KerasRegressor = None, None