如何打开 .pkl 文件
How to open a .pkl file
虽然已经有很多主题与我的问题相关,但答案对我来说通常是无法理解的,因为我只是“在 Python 中编写脚本”领域的初学者。
这是我的情况:
有一种机器学习软件可以在学习阶段结束时以 .pkl
格式编写模型。我想让操作员可以打开这些 model.pkl
文件,以检查模型中的内容。因此,我开始编写一个脚本,该脚本将使用 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()
如果我尝试 运行 输出如下:
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()
来更改我的代码,并且效果更好!
谢谢!
虽然已经有很多主题与我的问题相关,但答案对我来说通常是无法理解的,因为我只是“在 Python 中编写脚本”领域的初学者。
这是我的情况:
有一种机器学习软件可以在学习阶段结束时以 .pkl
格式编写模型。我想让操作员可以打开这些 model.pkl
文件,以检查模型中的内容。因此,我开始编写一个脚本,该脚本将使用 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()
如果我尝试 运行 输出如下:
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()
来更改我的代码,并且效果更好!
谢谢!