I have trained a model on Kaggle on this link : https://www.kaggle.com/dcosmin/shufflenet-with-keras using the source code from this link : https://github.com/opconty/keras-shufflenetV2/blob/master/shufflenetv2.py. After the training has finished, I saved a model called ShuffleNetV2.h5 and the weights.hdf5. When i try to run the code on my computer:
# model = tf.keras.models.load_model('L-CNN v4.0.h5')
# model = tf.keras.models.load_model('MobileNetV2 - 131 - 2.0.h5')
model = tf.keras.models.load_model('ShuffleNetV2 - 131.h5')
model.compile(loss='categorical_crossentropy',
optimizer='adam',
metrics=['accuracy'])
I need to run this code on the latest version of Keras and Tensorflow with Python 3.7 - I need to run it on Raspberry Pi. The error:
SystemError Traceback (most recent call last)
<ipython-input-15-914c5b8863a1> in <module>
1 #model = tf.keras.models.load_model('L-CNN v4.0.h5')
2 #model = tf.keras.models.load_model('MobileNetV2 - 131 - 2.0.h5')
----> 3 model = tf.keras.models.load_model('ShuffleNetV2 - 131.h5')
4 #model=load_model('ShuffleNetV2 - 131.h5')
5 model.compile(loss='categorical_crossentropy',
C:\ProgramData\Anaconda3\envs\Computer Vision\lib\site-packages\tensorflow_core\python\keras\saving\save.py in load_model(filepath, custom_objects, compile)
144 if (h5py is not None and (
145 isinstance(filepath, h5py.File) or h5py.is_hdf5(filepath))):
--> 146 return hdf5_format.load_model_from_hdf5(filepath, custom_objects, compile)
147
148 if isinstance(filepath, six.string_types):
C:\ProgramData\Anaconda3\envs\Computer Vision\lib\site-packages\tensorflow_core\python\keras\saving\hdf5_format.py in load_model_from_hdf5(filepath, custom_objects, compile)
166 model_config = json.loads(model_config.decode('utf-8'))
167 model = model_config_lib.model_from_config(model_config,
--> 168 custom_objects=custom_objects)
169
170 # set weights
C:\ProgramData\Anaconda3\envs\Computer Vision\lib\site-packages\tensorflow_core\python\keras\saving\model_config.py in model_from_config(config, custom_objects)
53 '`Sequential.from_config(config)`?')
54 from tensorflow.python.keras.layers import deserialize # pylint: disable=g-import-not-at-top
---> 55 return deserialize(config, custom_objects=custom_objects)
56
57
C:\ProgramData\Anaconda3\envs\Computer Vision\lib\site-packages\tensorflow_core\python\keras\layers\serialization.py in deserialize(config, custom_objects)
104 module_objects=globs,
105 custom_objects=custom_objects,
--> 106 printable_module_name='layer')
C:\ProgramData\Anaconda3\envs\Computer Vision\lib\site-packages\tensorflow_core\python\keras\utils\generic_utils.py in deserialize_keras_object(identifier, module_objects, custom_objects, printable_module_name)
301 custom_objects=dict(
302 list(_GLOBAL_CUSTOM_OBJECTS.items()) +
--> 303 list(custom_objects.items())))
304 with CustomObjectScope(custom_objects):
305 return cls.from_config(cls_config)
C:\ProgramData\Anaconda3\envs\Computer Vision\lib\site-packages\tensorflow_core\python\keras\engine\network.py in from_config(cls, config, custom_objects)
935 """
936 input_tensors, output_tensors, created_layers = reconstruct_from_config(
--> 937 config, custom_objects)
938 model = cls(inputs=input_tensors, outputs=output_tensors,
939 name=config.get('name'))
C:\ProgramData\Anaconda3\envs\Computer Vision\lib\site-packages\tensorflow_core\python\keras\engine\network.py in reconstruct_from_config(config, custom_objects, created_layers)
1901 if layer in unprocessed_nodes:
1902 for node_data in unprocessed_nodes.pop(layer):
-> 1903 process_node(layer, node_data)
1904
1905 input_tensors = []
C:\ProgramData\Anaconda3\envs\Computer Vision\lib\site-packages\tensorflow_core\python\keras\engine\network.py in process_node(layer, node_data)
1849 if not isinstance(input_tensors, dict) and len(flat_input_tensors) == 1:
1850 input_tensors = flat_input_tensors[0]
-> 1851 output_tensors = layer(input_tensors, **kwargs)
1852
1853 # Update node index map.
C:\ProgramData\Anaconda3\envs\Computer Vision\lib\site-packages\tensorflow_core\python\keras\engine\base_layer.py in __call__(self, inputs, *args, **kwargs)
771 not base_layer_utils.is_in_eager_or_tf_function()):
772 with auto_control_deps.AutomaticControlDependencies() as acd:
--> 773 outputs = call_fn(cast_inputs, *args, **kwargs)
774 # Wrap Tensors in `outputs` in `tf.identity` to avoid
775 # circular dependencies.
C:\ProgramData\Anaconda3\envs\Computer Vision\lib\site-packages\tensorflow_core\python\keras\layers\core.py in call(self, inputs, mask, training)
844 with backprop.GradientTape(watch_accessed_variables=True) as tape,\
845 variable_scope.variable_creator_scope(_variable_creator):
--> 846 result = self.function(inputs, **kwargs)
847 self._check_variables(created_variables, tape.watched_variables())
848 return result
C:\ProgramData\Anaconda3\envs\Computer Vision\lib\site-packages\tensorflow_core\python\keras\layers\core.py in channel_shuffle(x)
SystemError: unknown opcode
I really need to fix this incompatibilities. Can you tell me if I have to change something on Kaggle to train it again or i don;t know..
The opcodes in the model are not recognised by your Python interpreter. When loading the model, ensure you are running the same version of Python that was used to create the model.
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