From 22264312ba6554a6fff1270a9e5c0c0743817d36 Mon Sep 17 00:00:00 2001 From: sonal r patel Date: Fri, 28 May 2021 15:14:50 +0530 Subject: [PATCH 1/5] input_tensor and get_file related error fixed --- classification_models/models/resnet.py | 14 ++++++++++---- classification_models/weights.py | 7 ++++++- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/classification_models/models/resnet.py b/classification_models/models/resnet.py index d1f0861..e3ca215 100644 --- a/classification_models/models/resnet.py +++ b/classification_models/models/resnet.py @@ -209,10 +209,16 @@ def ResNet(model_params, input_shape=None, input_tensor=None, include_top=True, if input_tensor is None: img_input = layers.Input(shape=input_shape, name='data') else: - if not backend.is_keras_tensor(input_tensor): - img_input = layers.Input(tensor=input_tensor, shape=input_shape) - else: - img_input = input_tensor + """ Commented to solve following error: + ValueError: Unexpectedly found an instance of type + ``. + Expected a symbolic tensor instance. + """ + # if not backend.is_keras_tensor(input_tensor): + # img_input = layers.Input(tensor=input_tensor, shape=input_shape) + # else: + # img_input = input_tensor + img_input = input_tensor # choose residual block type ResidualBlock = model_params.residual_block diff --git a/classification_models/weights.py b/classification_models/weights.py index 7322265..061cfb9 100644 --- a/classification_models/weights.py +++ b/classification_models/weights.py @@ -1,4 +1,5 @@ from . import get_submodules_from_kwargs +from keras.utils.data_utils import get_file __all__ = ['load_model_weights'] @@ -22,7 +23,11 @@ def load_model_weights(model, model_name, dataset, classes, include_top, **kwarg raise ValueError('If using `weights` and `include_top`' ' as true, `classes` should be {}'.format(weights['classes'])) - weights_path = keras_utils.get_file( + """ Modified to solve following error: + module 'keras.utils' has no attribute 'get_file' + """ + # weights_path = keras_utils.get_file( + weights_path = get_file( weights['name'], weights['url'], cache_subdir='models', From 87f548f497cfd2db3b5bdb8f8836eddbcdb3d8cf Mon Sep 17 00:00:00 2001 From: sonal r patel Date: Fri, 28 May 2021 16:28:41 +0530 Subject: [PATCH 2/5] keras.utils related error fixed --- classification_models/__init__.py | 24 +++++++++++++++++++----- classification_models/weights.py | 7 +------ requirements.txt | 9 ++++++++- 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/classification_models/__init__.py b/classification_models/__init__.py index 9a91357..5a03186 100644 --- a/classification_models/__init__.py +++ b/classification_models/__init__.py @@ -1,10 +1,24 @@ +from tensorflow import keras import keras_applications as ka from .__version__ import __version__ +# def get_submodules_from_kwargs(kwargs): +# backend = kwargs.get('backend', ka._KERAS_BACKEND) +# layers = kwargs.get('layers', ka._KERAS_LAYERS) +# models = kwargs.get('models', ka._KERAS_MODELS) +# utils = kwargs.get('utils', ka._KERAS_UTILS) +# return backend, layers, models, utils + +""" Modified to solve following error: +module 'keras.utils' has no attribute 'get_file' +Reference: https://www.programcreek.com/python/?CodeExample=get+submodules+from+kwargs +""" + def get_submodules_from_kwargs(kwargs): - backend = kwargs.get('backend', ka._KERAS_BACKEND) - layers = kwargs.get('layers', ka._KERAS_LAYERS) - models = kwargs.get('models', ka._KERAS_MODELS) - utils = kwargs.get('utils', ka._KERAS_UTILS) - return backend, layers, models, utils + backend = keras.backend + layers = keras.backend + models = keras.models + keras_utils = keras.utils + + return backend, layers, models, keras_utils diff --git a/classification_models/weights.py b/classification_models/weights.py index 061cfb9..7322265 100644 --- a/classification_models/weights.py +++ b/classification_models/weights.py @@ -1,5 +1,4 @@ from . import get_submodules_from_kwargs -from keras.utils.data_utils import get_file __all__ = ['load_model_weights'] @@ -23,11 +22,7 @@ def load_model_weights(model, model_name, dataset, classes, include_top, **kwarg raise ValueError('If using `weights` and `include_top`' ' as true, `classes` should be {}'.format(weights['classes'])) - """ Modified to solve following error: - module 'keras.utils' has no attribute 'get_file' - """ - # weights_path = keras_utils.get_file( - weights_path = get_file( + weights_path = keras_utils.get_file( weights['name'], weights['url'], cache_subdir='models', diff --git a/requirements.txt b/requirements.txt index 52b9b8f..3f42c61 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,8 @@ -keras_applications>=1.0.7,<=1.0.8 \ No newline at end of file +keras_applications>=1.0.7,<=1.0.8 +six~=1.15.0 +pytest~=6.2.3 +numpy~=1.19.3 +tensorflow~=2.4.1 +keras~=2.4.3 +scikit-image~=0.18.1 +setuptools~=49.6.0 \ No newline at end of file From e58eb574b73e8f644b96d82138630264a1e4b19a Mon Sep 17 00:00:00 2001 From: sonal r patel Date: Fri, 28 May 2021 16:32:32 +0530 Subject: [PATCH 3/5] requirement.txt changes reverted --- requirements.txt | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/requirements.txt b/requirements.txt index 3f42c61..52b9b8f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,8 +1 @@ -keras_applications>=1.0.7,<=1.0.8 -six~=1.15.0 -pytest~=6.2.3 -numpy~=1.19.3 -tensorflow~=2.4.1 -keras~=2.4.3 -scikit-image~=0.18.1 -setuptools~=49.6.0 \ No newline at end of file +keras_applications>=1.0.7,<=1.0.8 \ No newline at end of file From 64728d650737b185de340db962dbec0589f0b533 Mon Sep 17 00:00:00 2001 From: sonal r patel Date: Fri, 28 May 2021 16:52:41 +0530 Subject: [PATCH 4/5] changes made in individual files, init change reverted --- classification_models/__init__.py | 24 +++++------------------- classification_models/models/resnet.py | 7 ++++++- classification_models/weights.py | 7 ++++++- 3 files changed, 17 insertions(+), 21 deletions(-) diff --git a/classification_models/__init__.py b/classification_models/__init__.py index 5a03186..9a91357 100644 --- a/classification_models/__init__.py +++ b/classification_models/__init__.py @@ -1,24 +1,10 @@ -from tensorflow import keras import keras_applications as ka from .__version__ import __version__ -# def get_submodules_from_kwargs(kwargs): -# backend = kwargs.get('backend', ka._KERAS_BACKEND) -# layers = kwargs.get('layers', ka._KERAS_LAYERS) -# models = kwargs.get('models', ka._KERAS_MODELS) -# utils = kwargs.get('utils', ka._KERAS_UTILS) -# return backend, layers, models, utils - -""" Modified to solve following error: -module 'keras.utils' has no attribute 'get_file' -Reference: https://www.programcreek.com/python/?CodeExample=get+submodules+from+kwargs -""" - def get_submodules_from_kwargs(kwargs): - backend = keras.backend - layers = keras.backend - models = keras.models - keras_utils = keras.utils - - return backend, layers, models, keras_utils + backend = kwargs.get('backend', ka._KERAS_BACKEND) + layers = kwargs.get('layers', ka._KERAS_LAYERS) + models = kwargs.get('models', ka._KERAS_MODELS) + utils = kwargs.get('utils', ka._KERAS_UTILS) + return backend, layers, models, utils diff --git a/classification_models/models/resnet.py b/classification_models/models/resnet.py index e3ca215..9888889 100644 --- a/classification_models/models/resnet.py +++ b/classification_models/models/resnet.py @@ -5,6 +5,7 @@ from ._common_blocks import ChannelSE from .. import get_submodules_from_kwargs from ..weights import load_model_weights +from tensorflow.keras.utils import get_source_inputs backend = None layers = None @@ -272,7 +273,11 @@ def ResNet(model_params, input_shape=None, input_tensor=None, include_top=True, # Ensure that the model takes into account any potential predecessors of `input_tensor`. if input_tensor is not None: - inputs = keras_utils.get_source_inputs(input_tensor) + """ Modified to solve following error: + module 'keras.utils' has no attribute 'get_source_inputs' + """ + # inputs = keras_utils.get_source_inputs(input_tensor) + inputs = get_source_inputs(input_tensor) else: inputs = img_input diff --git a/classification_models/weights.py b/classification_models/weights.py index 7322265..d83a903 100644 --- a/classification_models/weights.py +++ b/classification_models/weights.py @@ -1,4 +1,5 @@ from . import get_submodules_from_kwargs +from tensorflow.keras.utils import get_file __all__ = ['load_model_weights'] @@ -22,7 +23,11 @@ def load_model_weights(model, model_name, dataset, classes, include_top, **kwarg raise ValueError('If using `weights` and `include_top`' ' as true, `classes` should be {}'.format(weights['classes'])) - weights_path = keras_utils.get_file( + """ Modified to solve following error: + module 'keras.utils' has no attribute 'get_file' + """ + # weights_path = keras_utils.get_file( + weights_path = get_file( weights['name'], weights['url'], cache_subdir='models', From 19aabaa065fa1763ba6c795db69eea3f0f569ede Mon Sep 17 00:00:00 2001 From: sonal r patel Date: Fri, 28 May 2021 17:18:06 +0530 Subject: [PATCH 5/5] from tensorflow import keras --- classification_models/keras.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/classification_models/keras.py b/classification_models/keras.py index 65bc88c..43ae583 100644 --- a/classification_models/keras.py +++ b/classification_models/keras.py @@ -1,4 +1,5 @@ -import keras +# import keras +from tensorflow import keras from .models_factory import ModelsFactory