[英]How to open a .pkl file
盡管已經有很多與我的問題相關的主題,但答案對我來說通常是無法理解的,因為我只是“在 Python 中編寫腳本”領域的初學者。
這是我的情況:
有一個機器學習軟件在其學習階段結束時以.pkl
格式編寫模型。 我想讓那些model.pkl
文件可由操作員打開,以檢查 model 內部的內容。 因此,我開始編寫一個腳本,該腳本將使用pickle.load
方法並將我的model.pkl
中包含的數據寫入一個.txt
文件。 這是我開始寫的內容:
import pickle
import os
model_path=input("Model Path = ")
with open(model_path, "rb") as model :
load = pickle.load(model, encoding='utf-8')
new_model_path = model_path.split('.pkl')[0] +'.txt'
print("creating new file at : ", new_model_path)
model_readable = open(new_model_path, 'rt')
model_readable.write(load)
print("writing model as readable : ", load)
model_readable.close()
model.close()
如果我嘗試運行它,這里是 output:
python3.7 unpickler.py
Model Path = /home/ouriacc/Desktop/workspace/SESAM/Base_de_tests/Anomalie_1/Models/OCSVM/EyeSat/CI_HEATER_CAMERA_VOLTAGE.pkl
Traceback (most recent call last):
File "unpickler.py", line 7, in <module>
load = pickle.load(model, encoding='utf-8')
_pickle.UnpicklingError: invalid load key, '_'.
我找不到有關此錯誤的任何解釋,這並不意味着下載不完整或損壞,這不是我的情況,因為 model.pkl 文件一旦由 AI 軟件創建就不會被修改。
有人可以幫我解決錯誤,甚至可以告訴我實現目標的其他方法嗎? 我只需要一個腳本,讓用戶可以訪問 .pkl 文件包含的內容。
非常感謝 !
所以我明白了為什么@wundermahn 會詢問scikit-learn
。 看來我的model.pkl
文件是由joblib
生成的,而不是pickle
庫。 這就是為什么它顯然不起作用的原因。 它通過用pickle.load()
joblid.load()
更改我的代碼,並且效果更好!
謝謝 !
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.