Error while importing load_model from keras.model - python-3.x

I am trying to import my keras model which I have saved as .h5 file. But the very first line of my import gives me error. This is the line which gives error
from keras.models import load_model
I checked all the dependencies and that is ok. I have Keras 2.2.4. Error that I am getting:
Using TensorFlow backend.
Traceback (most recent call last):
File "drive1.py", line 1, in <module>
from keras.models import load_model
File "E:\python3.6.6\lib\site-packages\keras\__init__.py", line 3, in <module>
from . import utils
File "E:\python3.6.6\lib\site-packages\keras\utils\__init__.py", line 6, in <module>
from . import conv_utils
File "E:\python3.6.6\lib\site-packages\keras\utils\conv_utils.py", line 9, in <module>
from .. import backend as K
File "E:\python3.6.6\lib\site-packages\keras\backend\__init__.py", line 89, in <module>
from .tensorflow_backend import *
File "E:\python3.6.6\lib\site-packages\keras\backend\tensorflow_backend.py", line 5, in <module>
import tensorflow as tf
File "C:\Users\Dhruv\AppData\Roaming\Python\Python36\site-packages\tensorflow\__init__.py", line 24, in <module>
from tensorflow.python import * # pylint: disable=redefined-builtin
File "C:\Users\Dhruv\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\__init__.py", line 52, in <module>
from tensorflow.core.framework.graph_pb2 import *
File "C:\Users\Dhruv\AppData\Roaming\Python\Python36\site-packages\tensorflow\core\framework\graph_pb2.py", line 6, in <module>
from google.protobuf import descriptor as _descriptor
File "E:\python3.6.6\lib\site-packages\google\protobuf\__init__.py", line 37, in <module>
__import__('pkg_resources').declare_namespace(__name__)
File "E:\python3.6.6\lib\site-packages\pkg_resources.py", line 1479, in <module>
register_loader_type(importlib_bootstrap.SourceFileLoader, DefaultProvider)
AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader'
I feel like there is some package versions mismatch but not sure what should I check further. I am using pip for installing packages.

Finally from some reference I found that there was some version mismatch between my python and pip. Actually I was should have focused on following error message:
__import__('pkg_resources').declare_namespace(__name__)
And the thing which helped was
python -m ensurepip --upgrade

Related

RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd when importing sentence-transformers

I want to use sentence-transformers. To do this, I installed sentence-transformers as follows:
pip install sentence-transformers
Then, I did my import as follows:
from sentence_transformers import SentenceTransformer
Which resulted in the following error:
RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd
The entire Traceback is:
Traceback (most recent call last):
File "<ipython-input-112-dbcd88385343>", line 1, in <module>
from sentence_transformers import SentenceTransformer
File "C:\Users\20200016\AppData\Roaming\Python\Python38\site-packages\sentence_transformers\__init__.py", line 3, in <module>
from .datasets import SentencesDataset, ParallelSentencesDataset
File "C:\Users\20200016\AppData\Roaming\Python\Python38\site-packages\sentence_transformers\datasets\__init__.py", line 3, in <module>
from .ParallelSentencesDataset import ParallelSentencesDataset
File "C:\Users\20200016\AppData\Roaming\Python\Python38\site-packages\sentence_transformers\datasets\ParallelSentencesDataset.py", line 4, in <module>
from .. import SentenceTransformer
File "C:\Users\20200016\AppData\Roaming\Python\Python38\site-packages\sentence_transformers\SentenceTransformer.py", line 27, in <module>
from .models import Transformer, Pooling, Dense
File "C:\Users\20200016\AppData\Roaming\Python\Python38\site-packages\sentence_transformers\models\__init__.py", line 1, in <module>
from .Transformer import Transformer
File "C:\Users\20200016\AppData\Roaming\Python\Python38\site-packages\sentence_transformers\models\Transformer.py", line 2, in <module>
from transformers import AutoModel, AutoTokenizer, AutoConfig
File "C:\Users\20200016\AppData\Roaming\Python\Python38\site-packages\transformers\file_utils.py", line 1985, in __getattr__
value = getattr(module, name)
File "C:\Users\20200016\AppData\Roaming\Python\Python38\site-packages\transformers\file_utils.py", line 1984, in __getattr__
module = self._get_module(self._class_to_module[name])
File "C:\Users\20200016\AppData\Roaming\Python\Python38\site-packages\transformers\file_utils.py", line 1993, in _get_module
return importlib.import_module("." + module_name, self.__name__)
File "C:\Users\20200016\Anaconda3\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "C:\Users\20200016\AppData\Roaming\Python\Python38\site-packages\transformers\models\auto\modeling_auto.py", line 24, in <module>
from ..albert.modeling_albert import (
File "C:\Users\20200016\AppData\Roaming\Python\Python38\site-packages\transformers\models\albert\modeling_albert.py", line 51, in <module>
from .configuration_albert import AlbertConfig
File "C:\Users\20200016\AppData\Roaming\Python\Python38\site-packages\transformers\models\albert\configuration_albert.py", line 21, in <module>
from ...onnx import OnnxConfig
File "C:\Users\20200016\AppData\Roaming\Python\Python38\site-packages\transformers\onnx\__init__.py", line 17, in <module>
from .convert import export, validate_model_outputs
File "C:\Users\20200016\AppData\Roaming\Python\Python38\site-packages\transformers\onnx\convert.py", line 23, in <module>
from .. import PreTrainedModel, PreTrainedTokenizer, TensorType, TFPreTrainedModel, is_torch_available
File "C:\Users\20200016\AppData\Roaming\Python\Python38\site-packages\transformers\file_utils.py", line 1984, in __getattr__
module = self._get_module(self._class_to_module[name])
File "C:\Users\20200016\AppData\Roaming\Python\Python38\site-packages\transformers\file_utils.py", line 1993, in _get_module
return importlib.import_module("." + module_name, self.__name__)
File "C:\Users\20200016\Anaconda3\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "C:\Users\20200016\AppData\Roaming\Python\Python38\site-packages\transformers\modeling_tf_utils.py", line 27, in <module>
import tensorflow as tf
File "C:\Users\20200016\Anaconda3\lib\site-packages\tensorflow\__init__.py", line 37, in <module>
from tensorflow.python.tools import module_util as _module_util
File "C:\Users\20200016\Anaconda3\lib\site-packages\tensorflow\python\__init__.py", line 37, in <module>
from tensorflow.python.eager import context
File "C:\Users\20200016\Anaconda3\lib\site-packages\tensorflow\python\eager\context.py", line 35, in <module>
from tensorflow.python.client import pywrap_tf_session
File "C:\Users\20200016\Anaconda3\lib\site-packages\tensorflow\python\client\pywrap_tf_session.py", line 19, in <module>
from tensorflow.python.client._pywrap_tf_session import *
ImportError: SystemError: <built-in method __contains__ of dict object at 0x0000021655B72740> returned a result with an error set
I have tried upgrading Numpy:
pip install numpy --upgrade
But this returns:
Requirement already up-to-date: numpy in c:\...\site-packages (1.22.2)
What goes wrong here? And how can I overcome this error?
I have had a similar problem, and in my case upgrading numpy solve it. I checked the requirements.txt for the sentencetransformer but they stated no specific version.
Additionally you can try to install the SentenceTransformer without the dependecies pip install --no-deps sentence-transformers and install them manually afterwards. By downloading the requirements.txt and install it via pip install -r requirements.txt. In this process you can also more easily see whether there are any conflicts with some packages, maybe the information will e.g., help you to figure out which exact numpy version is needed.

Another metric with the same name already exists

I have problem with this code:
from tensorflow.keras.models import Sequential
and got this errors:
Traceback (most recent call last):
File "K:\test.py", line 1, in <module>
from tensorflow.keras.models import Sequential
File "G:\Program Files\Python37\lib\site-packages\keras\api\_v2\keras\__init__.py", line 10, in <module>
from keras import __version__
File "G:\Program Files\Python37\lib\site-packages\keras\__init__.py", line 25, in <module>
from keras import models
File "G:\Program Files\Python37\lib\site-packages\keras\models.py", line 20, in <module>
from keras import metrics as metrics_module
File "G:\Program Files\Python37\lib\site-packages\keras\metrics.py", line 26, in <module>
from keras import activations
File "G:\Program Files\Python37\lib\site-packages\keras\activations.py", line 20, in <module>
from keras.layers import advanced_activations
File "G:\Program Files\Python37\lib\site-packages\keras\layers\__init__.py", line 23, in <module>
from keras.engine.input_layer import Input
File "G:\Program Files\Python37\lib\site-packages\keras\engine\input_layer.py", line 21, in <module>
from keras.engine import base_layer
File "G:\Program Files\Python37\lib\site-packages\keras\engine\base_layer.py", line 43, in <module>
from keras.mixed_precision import loss_scale_optimizer
File "G:\Program Files\Python37\lib\site-packages\keras\mixed_precision\loss_scale_optimizer.py", line 18, in <module>
from keras import optimizers
File "G:\Program Files\Python37\lib\site-packages\keras\optimizers.py", line 26, in <module>
from keras.optimizer_v2 import adadelta as adadelta_v2
File "G:\Program Files\Python37\lib\site-packages\keras\optimizer_v2\adadelta.py", line 22, in <module>
from keras.optimizer_v2 import optimizer_v2
File "G:\Program Files\Python37\lib\site-packages\keras\optimizer_v2\optimizer_v2.py", line 37, in <module>
"/tensorflow/api/keras/optimizers", "keras optimizer usage", "method")
File "G:\Program Files\Python37\lib\site-packages\tensorflow\python\eager\monitoring.py", line 361, in __init__
len(labels), name, description, *labels)
File "G:\Program Files\Python37\lib\site-packages\tensorflow\python\eager\monitoring.py", line 135, in __init__
self._metric = self._metric_methods[self._label_length].create(*args)
tensorflow.python.framework.errors_impl.AlreadyExistsError: Another metric with the same name already exists
I have seen
this post
and didn't get the meaning of
never import twice
you can fix the problem by downgrading Keras version to 2.6.0,
Even you only installed TensorFlow, it installs Keras==2.7.1 as a partial dependency. Simply, this version difference causes the error.
In IPython Kernel or In an active environment,
pip install keras==2.6.0
In a deployment environment, like docker,
add keras==2.6.0 line at the last line in the requirements.txt.
Follow these three steps below:
pip uninstall tensorflow
delete all keras related files in PC directory:
\Anaconda3\Lib\site-packages
reinstall tensorflow
This has solved my problem.

no module named "tensorflow.python.platform" when importing tensorflow || tflearn on python shell

I am running python 3.7 on a windows 10 pc
i have been having trouble importing tensorflow or tflearn in my python project
every time after running
import tflearn
import tensorflow
i always end up getting the same error
import tflearn
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Python37\lib\site-packages\tflearn\__init__.py", line 4, in <module>
from . import config
File "C:\Program Files\Python37\lib\site-packages\tflearn\config.py", line 3, in <module>
import tensorflow as tf
File "C:\Users\genes\AppData\Roaming\Python\Python37\site-packages\tensorflow\__init__.py", line 24, in <module>
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File "C:\Users\genes\AppData\Roaming\Python\Python37\site-packages\tensorflow\python\__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "C:\Users\genes\AppData\Roaming\Python\Python37\site-packages\tensorflow\python\pywrap_tensorflow.py", line 25, in <module>
from tensorflow.python.platform import self_check
ModuleNotFoundError: No module named 'tensorflow.python.platform'
any idea on how to solve this for both tflearn && tensorflow import..
You can try this:
pip install tflearn
After this try importing tflearn again

no add_to_collection was found when using tensorflowjs_converter

I am trying to convert a savedModel into TensorFlow.js web format.
I installed tensorflowjs via sudo pip3 install tensorflowjs
When running tensorflowjs_converter--input_path=full_path_to/saved_model/saved_model.pb --outputpath=full_path_to/js
I get an error saying ImportError: cannot import name 'add_to_collection'
Even if I run tensorflowjs_converter --help, I get the exact same error.
Here is the full error:
Traceback (most recent call last):
File "/home/ubuntu/.local/lib/python3.6/site-packages/tensorflow_hub/tf_v1.py", line 29, in <module>
from tensorflow.compat.v1 import * # pylint: disable=wildcard-import
ModuleNotFoundError: No module named 'tensorflow.compat.v1'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ubuntu/.local/bin/tensorflowjs_converter", line 7, in <module>
from tensorflowjs.converters.converter import main
File "/home/ubuntu/.local/lib/python3.6/site-packages/tensorflowjs/__init__.py", line 21, in <module>
from tensorflowjs import converters
File "/home/ubuntu/.local/lib/python3.6/site-packages/tensorflowjs/converters/__init__.py", line 24, in <module>
from tensorflowjs.converters.tf_saved_model_conversion_v2 import convert_tf_saved_model
File "/home/ubuntu/.local/lib/python3.6/site-packages/tensorflowjs/converters/tf_saved_model_conversion_v2.py", line 37, in <module>
import tensorflow_hub as hub
File "/home/ubuntu/.local/lib/python3.6/site-packages/tensorflow_hub/__init__.py", line 30, in <module>
from tensorflow_hub.estimator import LatestModuleExporter
File "/home/ubuntu/.local/lib/python3.6/site-packages/tensorflow_hub/estimator.py", line 25, in <module>
from tensorflow_hub import tf_utils
File "/home/ubuntu/.local/lib/python3.6/site-packages/tensorflow_hub/tf_utils.py", line 28, in <module>
from tensorflow_hub import tf_v1
File "/home/ubuntu/.local/lib/python3.6/site-packages/tensorflow_hub/tf_v1.py", line 32, in <module>
from tensorflow import add_to_collection
ImportError: cannot import name 'add_to_collection'
Problem solved by downgrading tensorflowjs 1.0.1 to 0.6.4

unable to run tensorboard from command line to evaluate the efficiency of my model

while running tensorboard command i'm getting this error:
AttributeError: module 'numpy' has no attribute 'equal'
Traceback (most recent call last):
File "/home/apoorva/.local/bin/tensorboard", line 6, in <module>
from tensorboard.main import run_main
File "/home/apoorva/.local/lib/python3.6/site-packages/tensorboard/main.py", line 42, in <module>
import tensorflow as tf # pylint: disable=unused-import
File "/home/apoorva/.local/lib/python3.6/site-packages/tensorflow/__init__.py", line 24, in <module>
from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
File "/home/apoorva/.local/lib/python3.6/site-packages/tensorflow/python/__init__.py", line 63, in <module>
from tensorflow.python.framework.framework_lib import * # pylint: disable=redefined-builtin
File "/home/apoorva/.local/lib/python3.6/site-packages/tensorflow/python/framework/framework_lib.py", line 25, in <module>
from tensorflow.python.framework.ops import Graph
File "/home/apoorva/.local/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 40, in <module>
from tensorflow.python.eager import context
File "/home/apoorva/.local/lib/python3.6/site-packages/tensorflow/python/eager/context.py", line 30, in <module>
from tensorflow.python.framework import c_api_util
File "/home/apoorva/.local/lib/python3.6/site-packages/tensorflow/python/framework/c_api_util.py", line 25, in <module>
from tensorflow.python.util import compat
File "/home/apoorva/.local/lib/python3.6/site-packages/tensorflow/python/util/compat.py", line 129, in <module>
integral_types = (_numbers.Integral, _np.integer)
AttributeError: module 'numpy' has no attribute 'integer'
i tried updating numpy using :
sudo easy_install --upgrade numpy
AND
conda update numpy
but getting the same error again
i ran this command:
tensorboard --logdir=training/

Resources