Я обучил модель на Kaggle по этой ссылке: https://www.kaggle.com/dcosmin/shufflenet-with-keras используя исходный код из этой ссылки: https://github.com/opconty/keras-shufflenetV2/blob/master/shufflenetv2.py. После завершения обучения я сохранил модель под названием ShuffleNetV2.h5 и файл weights.hdf5. Когда я пытаюсь запустить код на своем компьютере:
# 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'])
Мне нужно запустить этот код в последней версии Keras и Tensorflow с Python 3.7 - Мне нужно запустить его на Raspberry Число Пи. Ошибка:
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
Мне действительно нужно исправить эту несовместимость. Можете ли вы сказать мне, нужно ли мне что-то изменить в Kaggle, чтобы тренировать его снова, или я не знаю ..