我在stackoverflow上尝试了几乎所有的答案,但没有任何效果。这是我的代码。
from keras.models import load_model
load_model('facenet_keras.h5')
它给了我这个错误
ValueError回溯(最近的调用)~AppDataLocalTempipykernel_57762622147163.py in——比;1 load_model (facenet_keras.h5)
~ Python AppData 漫游 Python39 网站 keras 跑龙套 traceback_utils.py在error_handler(*args, **kwargs)中要获得完整的堆栈跟踪,调用:69 #
tf.debugging.disable_traceback_filtering()
——比;70从None引发e.w with_traceback(filtered_tb)71年的最后:72 del filtered_tb~ Python AppData 漫游 Python39 网站 keras 跑龙套 generic_utils.py在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)如果globs为None,则为104:105 globs = globals()
ValueError: marshal data bad (unknown type code)
为了解决上面的错误,我做了以下操作
from keras_facenet import FaceNet
embedder = FaceNet()
但是我不想使用上面的方法。我只想加载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')
如果您可以从[keras_facenet/inception_resnet_v1][1]
重新创建体系结构,那么您可以:
model = InceptionResNetV1(
input_shape=(None, None, 3),
classes=512,
)
model.load_weights('model.h5')
使用
model = tf.keras.applications.ResNet50(weights='imagenet')
这对我有用。在我们的代码中,你将不能为嵌入使用'predict'属性,但是使用这个你可以。
在实现之前,你只需要在你的终端中使用下面的代码安装一个依赖项:
#pip install keras_facenet