[英]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.