簡體   English   中英

如何打開 .pkl 文件

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM