AttributeError: module 'tensorflow.python.training.experimental.mixed_precision' has no attribute '_register_wrapper_optimizer_cls'
Question:
I am using Keras to implement a neural network. But when I use model = Sequential()
, I get the following error:
AttributeError Traceback (most recent call last)
<ipython-input-31-fa9fd3b0e211> in <module>
8
9 # Create the model
---> 10 model = Sequential()
11 model.add(Dropout(0.1), input_shape=(128,))
12 model.add(Dense(256, activation='relu', kernel_initializer='he_uniform'))
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/utils/version_utils.py in __new__(cls, *args, **kwargs)
55 use_v2 = should_use_v2()
56 cls = swap_class(cls, training.Model, training_v1.Model, use_v2) # pylint: disable=self-cls-assignment
---> 57 return super(ModelVersionSelector, cls).__new__(cls)
58
59
/usr/local/lib/python3.6/dist-packages/tensorflow/python/util/lazy_loader.py in __getattr__(self, item)
60
61 def __getattr__(self, item):
---> 62 module = self._load()
63 return getattr(module, item)
64
/usr/local/lib/python3.6/dist-packages/tensorflow/python/util/lazy_loader.py in _load(self)
43 """Load the module and insert it into the parent's globals."""
44 # Import the target module and insert it into the parent's namespace
---> 45 module = importlib.import_module(self.__name__)
46 self._parent_module_globals[self._local_name] = module
47
/usr/lib/python3.6/importlib/__init__.py in import_module(name, package)
124 break
125 level += 1
--> 126 return _bootstrap._gcd_import(name[level:], package, level)
127
128
/usr/lib/python3.6/importlib/_bootstrap.py in _gcd_import(name, package, level)
/usr/lib/python3.6/importlib/_bootstrap.py in _find_and_load(name, import_)
/usr/lib/python3.6/importlib/_bootstrap.py in _find_and_load_unlocked(name, import_)
/usr/lib/python3.6/importlib/_bootstrap.py in _load_unlocked(spec)
/usr/lib/python3.6/importlib/_bootstrap_external.py in exec_module(self, module)
/usr/lib/python3.6/importlib/_bootstrap.py in _call_with_frames_removed(f, *args, **kwds)
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/base_layer_v1.py in <module>
48 from tensorflow.python.keras.engine import input_spec
49 from tensorflow.python.keras.mixed_precision import autocast_variable
---> 50 from tensorflow.python.keras.mixed_precision import loss_scale_optimizer
51 from tensorflow.python.keras.mixed_precision import policy
52 from tensorflow.python.keras.saving.saved_model import layer_serialization
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/mixed_precision/loss_scale_optimizer.py in <module>
1152
1153 # pylint: disable=protected-access
-> 1154 mixed_precision._register_wrapper_optimizer_cls(optimizer_v2.OptimizerV2,
1155 LossScaleOptimizerV1)
1156
AttributeError: module 'tensorflow.python.training.experimental.mixed_precision' has no attribute '_register_wrapper_optimizer_cls'
I am relatively new to deep learning. Any help would be appreciated. Thank you!
Answers:
This problem maybe occurs in the keras package version.
Because the installed tensorflow version does not match the keras version. Just uninstall keras and reinstall your own tensorflow corresponding version.
pip3 uninstall keras
pip3 install keras --upgrade
In summary, you need to match the correct environment version for your Keras code.
I had the same problem. The problem is that Keras is not installed compatible with Tensorflow, so there are no attributes/methods in it. I tried the following commands mentioned in the source and my problem was completely solved.
pip3 uninstall keras
pip3 install keras --upgrade
This is a terrible solution, but for the sake of getting things going, here is how I solved it.
I went into my directory and found the location of tensorflow.python.training.experimental.mixed_precision.py, and manually inserted the following lines
def _register_wrapper_optimizer_cls(optimizer_cls, wrapper_optimizer_cls):
_REGISTERED_WRAPPER_OPTIMIZER_CLS[optimizer_cls] = wrapper_optimizer_cls
The code is from the official GitHub
https://github.com/sourcecode369/tensorflow-1/blob/master/tensorflow/python/training/experimental/mixed_precision.py
I’ve been searching a lot and I could fix this problem only running the following command that I found in this source, Github tf issue:
pip3 install tf-nightly
As the other answers, this is a compatible version issue
I was getting problems with imports in my local machine like:
from tensorflow.keras import layers
from tensorflow.keras import Input
But now I can import without problem.
After tried both of commands below:
pip3 uninstall keras
pip3 install keras --upgrade
Or:
pip3 uninstall tensorflow
pip3 install tensorflow --upgrade
The only solution works for me:
pip3 install tensorflow==2.6.0
pip3 install keras==2.6.0
If below commands doesn’t work,
pip3 uninstall keras
pip3 install keras --upgrade
It might the pip3 uninstall keras
doesn’t uninstall the keras clearly.
You need to use pip list
to check whether there are some keras package still install.
I am using Keras to implement a neural network. But when I use model = Sequential()
, I get the following error:
AttributeError Traceback (most recent call last)
<ipython-input-31-fa9fd3b0e211> in <module>
8
9 # Create the model
---> 10 model = Sequential()
11 model.add(Dropout(0.1), input_shape=(128,))
12 model.add(Dense(256, activation='relu', kernel_initializer='he_uniform'))
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/utils/version_utils.py in __new__(cls, *args, **kwargs)
55 use_v2 = should_use_v2()
56 cls = swap_class(cls, training.Model, training_v1.Model, use_v2) # pylint: disable=self-cls-assignment
---> 57 return super(ModelVersionSelector, cls).__new__(cls)
58
59
/usr/local/lib/python3.6/dist-packages/tensorflow/python/util/lazy_loader.py in __getattr__(self, item)
60
61 def __getattr__(self, item):
---> 62 module = self._load()
63 return getattr(module, item)
64
/usr/local/lib/python3.6/dist-packages/tensorflow/python/util/lazy_loader.py in _load(self)
43 """Load the module and insert it into the parent's globals."""
44 # Import the target module and insert it into the parent's namespace
---> 45 module = importlib.import_module(self.__name__)
46 self._parent_module_globals[self._local_name] = module
47
/usr/lib/python3.6/importlib/__init__.py in import_module(name, package)
124 break
125 level += 1
--> 126 return _bootstrap._gcd_import(name[level:], package, level)
127
128
/usr/lib/python3.6/importlib/_bootstrap.py in _gcd_import(name, package, level)
/usr/lib/python3.6/importlib/_bootstrap.py in _find_and_load(name, import_)
/usr/lib/python3.6/importlib/_bootstrap.py in _find_and_load_unlocked(name, import_)
/usr/lib/python3.6/importlib/_bootstrap.py in _load_unlocked(spec)
/usr/lib/python3.6/importlib/_bootstrap_external.py in exec_module(self, module)
/usr/lib/python3.6/importlib/_bootstrap.py in _call_with_frames_removed(f, *args, **kwds)
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/base_layer_v1.py in <module>
48 from tensorflow.python.keras.engine import input_spec
49 from tensorflow.python.keras.mixed_precision import autocast_variable
---> 50 from tensorflow.python.keras.mixed_precision import loss_scale_optimizer
51 from tensorflow.python.keras.mixed_precision import policy
52 from tensorflow.python.keras.saving.saved_model import layer_serialization
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/mixed_precision/loss_scale_optimizer.py in <module>
1152
1153 # pylint: disable=protected-access
-> 1154 mixed_precision._register_wrapper_optimizer_cls(optimizer_v2.OptimizerV2,
1155 LossScaleOptimizerV1)
1156
AttributeError: module 'tensorflow.python.training.experimental.mixed_precision' has no attribute '_register_wrapper_optimizer_cls'
I am relatively new to deep learning. Any help would be appreciated. Thank you!
This problem maybe occurs in the keras package version.
Because the installed tensorflow version does not match the keras version. Just uninstall keras and reinstall your own tensorflow corresponding version.
pip3 uninstall keras
pip3 install keras --upgrade
In summary, you need to match the correct environment version for your Keras code.
I had the same problem. The problem is that Keras is not installed compatible with Tensorflow, so there are no attributes/methods in it. I tried the following commands mentioned in the source and my problem was completely solved.
pip3 uninstall keras
pip3 install keras --upgrade
This is a terrible solution, but for the sake of getting things going, here is how I solved it.
I went into my directory and found the location of tensorflow.python.training.experimental.mixed_precision.py, and manually inserted the following lines
def _register_wrapper_optimizer_cls(optimizer_cls, wrapper_optimizer_cls):
_REGISTERED_WRAPPER_OPTIMIZER_CLS[optimizer_cls] = wrapper_optimizer_cls
The code is from the official GitHub
https://github.com/sourcecode369/tensorflow-1/blob/master/tensorflow/python/training/experimental/mixed_precision.py
I’ve been searching a lot and I could fix this problem only running the following command that I found in this source, Github tf issue:
pip3 install tf-nightly
As the other answers, this is a compatible version issue
I was getting problems with imports in my local machine like:
from tensorflow.keras import layers
from tensorflow.keras import Input
But now I can import without problem.
After tried both of commands below:
pip3 uninstall keras
pip3 install keras --upgrade
Or:
pip3 uninstall tensorflow
pip3 install tensorflow --upgrade
The only solution works for me:
pip3 install tensorflow==2.6.0
pip3 install keras==2.6.0
If below commands doesn’t work,
pip3 uninstall keras
pip3 install keras --upgrade
It might the pip3 uninstall keras
doesn’t uninstall the keras clearly.
You need to use pip list
to check whether there are some keras package still install.