with open('2model.json','r') as f:
json = f.read()
model = model_from_json(json)
model.load_weights("color_tensorflow_real_mode.h5")
I trained a keras model on google colab. Now not able to load it locally on my system. Getting this error: ValueError: Unknown initializer: GlorotUniform
How to solve this?? Every time I make a model on colab and try loading it locally I am unable to do so. Getting this error message:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-17-c3ed162a8277> in <module>()
----> 1 model = model_from_json(json)
2 model.load_weights("color_tensorflow_real_mode.h5")
~\Anaconda3\lib\site-packages\tensorflow\python\keras\engine\saving.py in model_from_json(json_string, custom_objects)
349 config = json.loads(json_string)
350 from tensorflow.python.keras.layers import deserialize # pylint: disable=g-import-not-at-top
--> 351 return deserialize(config, custom_objects=custom_objects)
352
353
~\Anaconda3\lib\site-packages\tensorflow\python\keras\layers\serialization.py in deserialize(config, custom_objects)
62 module_objects=globs,
63 custom_objects=custom_objects,
---> 64 printable_module_name='layer')
~\Anaconda3\lib\site-packages\tensorflow\python\keras\utils\generic_utils.py in deserialize_keras_object(identifier, module_objects, custom_objects, printable_module_name)
171 custom_objects=dict(
172 list(_GLOBAL_CUSTOM_OBJECTS.items()) +
--> 173 list(custom_objects.items())))
174 with CustomObjectScope(custom_objects):
175 return cls.from_config(config['config'])
~\Anaconda3\lib\site-packages\tensorflow\python\keras\engine\network.py in from_config(cls, config, custom_objects)
1290 # First, we create all layers and enqueue nodes to be processed
1291 for layer_data in config['layers']:
-> 1292 process_layer(layer_data)
1293 # Then we process nodes in order of layer depth.
1294 # Nodes that cannot yet be processed (if the inbound node
~\Anaconda3\lib\site-packages\tensorflow\python\keras\engine\network.py in process_layer(layer_data)
1276 from tensorflow.python.keras.layers import deserialize as deserialize_layer # pylint: disable=g-import-not-at-top
1277
-> 1278 layer = deserialize_layer(layer_data, custom_objects=custom_objects)
1279 created_layers[layer_name] = layer
1280
~\Anaconda3\lib\site-packages\tensorflow\python\keras\layers\serialization.py in deserialize(config, custom_objects)
62 module_objects=globs,
63 custom_objects=custom_objects,
---> 64 printable_module_name='layer')
~\Anaconda3\lib\site-packages\tensorflow\python\keras\utils\generic_utils.py in deserialize_keras_object(identifier, module_objects, custom_objects, printable_module_name)
173 list(custom_objects.items())))
174 with CustomObjectScope(custom_objects):
--> 175 return cls.from_config(config['config'])
176 else:
177 # Then `cls` may be a function returning a class.
~\Anaconda3\lib\site-packages\tensorflow\python\keras\engine\base_layer.py in from_config(cls, config)
1615 A layer instance.
1616 """
-> 1617 return cls(**config)
1618
1619
~\Anaconda3\lib\site-packages\tensorflow\python\keras\layers\convolutional.py in __init__(self, filters, kernel_size, strides, padding, data_format, dilation_rate, activation, use_bias, kernel_initializer, bias_initializer, kernel_regularizer, bias_regularizer, activity_regularizer, kernel_constraint, bias_constraint, **kwargs)
464 activation=activations.get(activation),
465 use_bias=use_bias,
--> 466 kernel_initializer=initializers.get(kernel_initializer),
467 bias_initializer=initializers.get(bias_initializer),
468 kernel_regularizer=regularizers.get(kernel_regularizer),
~\Anaconda3\lib\site-packages\tensorflow\python\keras\initializers.py in get(identifier)
153 return None
154 if isinstance(identifier, dict):
--> 155 return deserialize(identifier)
156 elif isinstance(identifier, six.string_types):
157 config = {'class_name': str(identifier), 'config': {}}
~\Anaconda3\lib\site-packages\tensorflow\python\keras\initializers.py in deserialize(config, custom_objects)
145 module_objects=globals(),
146 custom_objects=custom_objects,
--> 147 printable_module_name='initializer')
148
149
~\Anaconda3\lib\site-packages\tensorflow\python\keras\utils\generic_utils.py in deserialize_keras_object(identifier, module_objects, custom_objects, printable_module_name)
161 cls = module_objects.get(class_name)
162 if cls is None:
--> 163 raise ValueError('Unknown ' + printable_module_name + ': ' + class_name)
164 if hasattr(cls, 'from_config'):
165 arg_spec = tf_inspect.getfullargspec(cls.from_config)
ValueError: Unknown initializer: GlorotUniform
Stackoverflow is asking me to add details while I have none to add. Or I am not sure what to add. Please help.
For files on your local machine, we'll use the user interface in Google Colab. In the upper left hand corner, select the folder icon to see the list of available folders in a given directory. Here, there is an icon for uploading a file. Select this icon, and then select wherever the weights are on your local machine.
Copy the HDF5 file into your google drive and load them into your Colab notebook. Then fetch the data and labels from the dataset present in the file. Create 'on-the-fly' augmentation as below and feed it to your network.
Make sure you have the newest version of Keras
and tensorflow
(which are 2.4.4
and 1.11.0
) by running either pip install keras tensorflow
or conda install keras tensorflow
.
In case it is Google Colab that uses deprecated objects, you may need to use custom objects:
from keras.utils import CustomObjectScope
from keras.initializers import glorot_uniform
with CustomObjectScope({'GlorotUniform': glorot_uniform()}):
model = load_model('my_model.h5')
Not sure if this is your case though.
load the model using
from tensorflow.keras.models import load_model
instead of
from keras.models import load_model
I tried using many methods but this is the one that finally worked!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With