Проблема с загрузкой модели .hdf5 (ValueError: Unknown Layer: FixedBatchNormalization)

Я пытаюсь преобразовать модель .hdf5 в модель .pb. Я застрял с загрузкой модели.

Вот мой код:

import keras
keras.models.load_model('./model_frcnn.hdf5')

Вот моя ошибка:

Traceback (most recent call last):
  File "/home/qendrim/solaborate/repos/solaborate/Solaborate.ML/scripts/solaborate_scripts/practice.py", line 2, in <module>
    keras.models.load_model('./model_frcnn.hdf5')
  File "/home/qendrim/anaconda3/envs/hello-ai/lib/python3.7/site-packages/keras/engine/saving.py", line 419, in load_model
    model = _deserialize_model(f, custom_objects, compile)
  File "/home/qendrim/anaconda3/envs/hello-ai/lib/python3.7/site-packages/keras/engine/saving.py", line 225, in _deserialize_model
    model = model_from_config(model_config, custom_objects=custom_objects)
  File "/home/qendrim/anaconda3/envs/hello-ai/lib/python3.7/site-packages/keras/engine/saving.py", line 458, in model_from_config
    return deserialize(config, custom_objects=custom_objects)
  File "/home/qendrim/anaconda3/envs/hello-ai/lib/python3.7/site-packages/keras/layers/__init__.py", line 55, in deserialize
    printable_module_name='layer')
  File "/home/qendrim/anaconda3/envs/hello-ai/lib/python3.7/site-packages/keras/utils/generic_utils.py", line 145, in deserialize_keras_object
    list(custom_objects.items())))
  File "/home/qendrim/anaconda3/envs/hello-ai/lib/python3.7/site-packages/keras/engine/network.py", line 1022, in from_config
    process_layer(layer_data)
  File "/home/qendrim/anaconda3/envs/hello-ai/lib/python3.7/site-packages/keras/engine/network.py", line 1008, in process_layer
    custom_objects=custom_objects)
  File "/home/qendrim/anaconda3/envs/hello-ai/lib/python3.7/site-packages/keras/layers/__init__.py", line 55, in deserialize
    printable_module_name='layer')
  File "/home/qendrim/anaconda3/envs/hello-ai/lib/python3.7/site-packages/keras/utils/generic_utils.py", line 138, in deserialize_keras_object
    ': ' + class_name)
ValueError: Unknown layer: FixedBatchNormalization

Как я могу исправить эту проблему?


person Qendrim Krasniqi    schedule 13.11.2019    source источник


Ответы (1)


Ну ... У Кераса нет FixedBatchNormalization слоя. Таким образом, он не может загрузить этот слой.

Если вы знаете код этого слоя, передайте его параметру custom_objects={'FixedBatchNormalization' : FixedBatchNormalization} в load_model.

person Daniel Möller    schedule 13.11.2019
comment
Я предполагаю, что FixedBatchNormalization соответствует keras.layers.BatchNormalization. Теперь у меня следующая проблема, и я не могу найти соответствующий слой: `` ValueError: Unknown layer: RoiPoolingConv `` Есть идеи? - person Qendrim Krasniqi; 14.11.2019
comment
Еще один настраиваемый слой, вам нужен код для всех настраиваемых слоев. К сожалению, Keras не сможет загружать пользовательские слои без их пользовательских кодов. - person Daniel Möller; 14.11.2019
comment
@ DanielMöller Не могли бы вы взглянуть на этот вопрос? stackoverflow.com/q/58900947/5904928 Я часами борюсь, не могу найти ответа. - person Aaditya Ura; 17.11.2019