Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SystemError: unknown opcode when loading model with Keras

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..

like image 372
Jinn Avatar asked Jul 01 '26 07:07

Jinn


1 Answers

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.

like image 69
Chris Avatar answered Jul 02 '26 19:07

Chris



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!