You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

加载FaceNet模型遇ValueError,求替代keras_facenet的解决方法

加载FaceNet Keras模型时出现「bad marshal data」错误

问题代码

尝试直接加载模型的代码:

from keras.models import load_model
load_model('facenet_keras.h5')

报错信息

运行后触发以下错误:

ValueError                                Traceback (most recent call
last) ~\AppData\Local\Temp\ipykernel_5776\2622147163.py in 
----> 1 load_model('facenet_keras.h5')

~\AppData\Roaming\Python\Python39\site-packages\keras\utils\traceback_utils.py
in error_handler(*args, **kwargs)
68             # To get the full stack trace, call:
69             # <code>tf.debugging.disable_traceback_filtering()</code>
---> 70             raise e.with_traceback(filtered_tb) from None
71         finally:
72             del filtered_tb

~\AppData\Roaming\Python\Python39\site-packages\keras\utils\generic_utils.py
in func_load(code, defaults, closure, globs)
101     except (UnicodeEncodeError, binascii.Error):
102         raw_code = code.encode("raw_unicode_escape")
---> 103     code = marshal.loads(raw_code)
104     if globs is None:
105         globs = globals()

ValueError: bad marshal data (unknown type code)

已尝试的替代方案(不想使用)

曾用过第三方库直接调用,但不符合需求:

from keras_facenet import FaceNet
embedder = FaceNet()

环境版本

  • Python:3.9.3
  • TensorFlow:2.11.0
  • Keras:2.11.0

可行解决方案

根据V.M的回答,通过手动定义模型结构再加载权重的方式可以解决:

model = InceptionResNetV1(
        input_shape=(None, None, 3),
        classes=512,
    )
model.load_weights('20180402-114759.h5')

内容的提问来源于stack exchange,提问作者primo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 17:15:44