【问题标题】:Problem loading .hdf5 model (ValueError: Unknown layer: FixedBatchNormalization)加载 .hdf5 模型时出现问题(ValueError:未知层:FixedBatchNormalization)
【发布时间】:2020-03-09 11:07:39
【问题描述】:

我正在尝试将 .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

我该如何解决这个问题?

【问题讨论】:

    标签: keras keras-layer


    【解决方案1】:

    嗯...Keras 没有FixedBatchNormalization 层。所以它不能加载这个层。

    如果你知道这一层的代码,将它传递给load_model中的custom_objects={'FixedBatchNormalization' : FixedBatchNormalization}参数。

    【讨论】:

    • 我假设 FixedBatchNormalization 对应于 keras.layers.BatchNormalization。现在我有下一个问题,我找不到它对应的层:``` ValueError: Unknown layer: RoiPoolingConv ```有什么想法吗?
    • 另一个自定义层,您需要所有自定义层的代码。不幸的是,如果没有自定义代码,Keras 将无法加载自定义图层。
    • @DanielMöller 你能看看这个问题吗? stackoverflow.com/q/58900947/5904928我挣扎了好几个小时,找不到答案。
    【解决方案2】:

    Keras 没有FixedBatchNormalization 层。所以它不能加载这个层

    keras.models.load_model('./model_frcnn.hdf5') 而不是这个使用

    keras.models.load_model('./model_frcnn.hdf5', custom_objects={'InstanceNormalization':InstanceNormalization})

    from keras.models import load_model

    load_model(file name, custom_objects={'InstanceNormalization':InstanceNormalization})

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-14
      • 2022-06-28
      • 2020-06-24
      • 2019-04-10
      • 2021-06-12
      • 2022-01-13
      • 2017-03-01
      • 1970-01-01
      相关资源
      最近更新 更多