加载使用 joblib/pickle 保存的 ML 模型时出现问题
Problem loading ML model saved using joblib/pickle
我使用 joblib.
将 jupyter notebook .pynb
文件保存为 .pickle
格式
我的 ML 模型是使用 pandas、numpy 和 statsmodels
python 库构建的。
我将拟合模型保存到一个名为 fitted_model
的变量中,这是我使用 joblib 的方式:
from sklearn.externals import joblib
# Save RL_Model to file in the current working directory
joblib_file = "joblib_RL_Model.pkl"
joblib.dump(fitted_model, joblib_file)
我得到这个作为输出:
['joblib_RL_Model.pkl']
但是当我尝试从文件加载时,在一个新的 jupyter notebook 中,使用:
# Load from file
joblib_file = "joblib_RL_Model.pkl"
joblib_LR_model = joblib.load(joblib_file)
joblib_LR_model
我只得到这个:
没有模特。我期待在那里看到模型加载并看到按照原始笔记本的图形输出。
与open一起使用,效果更好,因为它会自动打开和关闭文件。也有适当的模式。
with open('joblib_RL_Model.pkl', 'wb') as f:
pickle.dump(fitted_model, f)
with open('joblib_RL_Model.pkl', 'rb') as f:
joblib_LR_model = pickle.load(f)
我在 Colab 中的实现是 here。检查一下。
您可以使用更可量化的包,这是 pickle
默认包 python 来保存模型
您可以使用以下功能来保存 ML 模型
import pickle
def save_model(model):
pickle.dump(model, open("model.pkl", "wb"))
函数模板为
import pickle
def save_model(model):
pickle.dump(model, open(PATH_AND_FILE_NAME_TO_BE_SAVED, "wb"))
要从 pickle 库中保存模型时加载模型,您可以按照以下函数进行操作
def load_model(path):
return pickle.load(open(path, 'rb'))
- 其中路径是保存模型的文件的路径和名称。
注:
- 这仅适用于基本的 ML 模型和 PyTorch 模型,不适用于您需要使用的基于 Tensorflow 的模型
model.save(PATH_TO_MODEL_AND_NAME)
其中模型的类型为 tensorflow.keras.models
我使用 joblib.
.pynb
文件保存为 .pickle
格式
我的 ML 模型是使用 pandas、numpy 和 statsmodels
python 库构建的。
我将拟合模型保存到一个名为 fitted_model
的变量中,这是我使用 joblib 的方式:
from sklearn.externals import joblib
# Save RL_Model to file in the current working directory
joblib_file = "joblib_RL_Model.pkl"
joblib.dump(fitted_model, joblib_file)
我得到这个作为输出:
['joblib_RL_Model.pkl']
但是当我尝试从文件加载时,在一个新的 jupyter notebook 中,使用:
# Load from file
joblib_file = "joblib_RL_Model.pkl"
joblib_LR_model = joblib.load(joblib_file)
joblib_LR_model
我只得到这个:
没有模特。我期待在那里看到模型加载并看到按照原始笔记本的图形输出。
与open一起使用,效果更好,因为它会自动打开和关闭文件。也有适当的模式。
with open('joblib_RL_Model.pkl', 'wb') as f:
pickle.dump(fitted_model, f)
with open('joblib_RL_Model.pkl', 'rb') as f:
joblib_LR_model = pickle.load(f)
我在 Colab 中的实现是 here。检查一下。
您可以使用更可量化的包,这是 pickle
默认包 python 来保存模型
您可以使用以下功能来保存 ML 模型
import pickle
def save_model(model):
pickle.dump(model, open("model.pkl", "wb"))
函数模板为
import pickle
def save_model(model):
pickle.dump(model, open(PATH_AND_FILE_NAME_TO_BE_SAVED, "wb"))
要从 pickle 库中保存模型时加载模型,您可以按照以下函数进行操作
def load_model(path):
return pickle.load(open(path, 'rb'))
- 其中路径是保存模型的文件的路径和名称。
注:
- 这仅适用于基本的 ML 模型和 PyTorch 模型,不适用于您需要使用的基于 Tensorflow 的模型
model.save(PATH_TO_MODEL_AND_NAME)
其中模型的类型为 tensorflow.keras.models