簡體   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