繁体   English   中英

TypeError:从Keras-Openface项目中转储nn4_small2_pretrained模型时无法腌制_thread.lock对象

[英]TypeError: can't pickle _thread.lock objects while dumping nn4_small2_pretrained model from Keras-Openface Project

我正在尝试使用Keras-Openface项目的预训练模型来实现面部识别,并在这里由Martin Krasser进行令人惊讶的解释和暗示

OpenFace项目提供了使用公共面部识别数据集FaceScrub和CASIA-WebFace进行训练的预训练模型。 Keras-OpenFace项目将预先训练的nn4.small2.v1模型的权重转换为CSV文件,然后在此处转换为二进制格式,Keras可以使用load_weights加载

该代码很简单:

nn4_small2_pretrained = create_model()
nn4_small2_pretrained.load_weights('weights/nn4.small2.v1.h5')

在进行错误操作以更深入地了解create_model()中发生的情况之前,您可以在此处遍历代码

现在我需要nn4_small2_pretrained在我predict.py文件(它最初train.py训练我的自定义图像的一部分),但如果我这样做

from train import nn4_small2_pretrained

或写代码

nn4_small2_pretrained = create_model()
nn4_small2_pretrained.load_weights('weights/nn4.small2.v1.h5')

从头再来,那么预测文件要花很多时间才能重新编译整个过程。 因此,为解决此问题,我尝试将模型转储到类似pickle的文件中

# Save the nn4 pretrained model to pickle file
f = open('pretrained_model.pickle', 'wb')
pickle.dump(nn4_small2_pretrained, f)

当我运行代码时,它给了我这个错误

    File "train.py", line 24, in <module>
        pickle.dump(nn4_small2_pretrained, f)
TypeError: can't pickle _thread.lock objects

最近,我开始学习Deel学习模型和Pickle,但我不知道出了什么问题。 任何帮助将非常感激。

谢谢。

我看到create_model()创建了Keras Model的实例。 如果是Keras模型,则可以使用model.save(filepath)保存模型。 请参阅此链接以了解其他选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM