Python训练的机器学习模型【保存】 和【加载】的方法?

一.为什么要保存训练好的模型

        由于传统训练机器学习模型,需要耗费大量的人力和资源。因此,将训练好的模型保存成为一件特别重要的事情。

        现有的机器学习模型保存方法有三种,分别为使用pickle(通用)、joblib(大型模型)、HDF5(存储深度学习模型的权重)

二.Python保存模型的三种方式

1.方式一:pickle模块【通用】
        pickle是Python标准库中的一个模块,它可以将Python对象序列化为二进制格式,以便于存储和传输。可以使用pickle将训练好的模型保存到磁盘上,以备将来使用。

1)保存模型

import pickle

# 训练模型
model = ... 

# 保存模型
with open('model.pkl', 'wb') as file:
    pickle.dump(model, file)

2)加载模型

# 加载模型
with open('model.pkl', 'rb') as file:
    model = pickle.load(file)

2.方式二:joblib模块【大型模型】
        joblib是一个用于将Python对象序列化为磁盘文件的库,专门用于 大型数组。它可以高效地处理大型数据集和模型。对于大型机器学习模型,使用joblib可能比pickle更快。

1)保存模型

import joblib

# train the model
model = ...

# save the model
joblib.dump(model, 'my_model.joblib')

2)加载模型

import joblib

# load the saved model
model = joblib.load('my_model.joblib')

# predict using the loaded model
model.predict(X)

3.方式三:使用HDF5——大型模型(保存权重)

HDF5是一种用于存储大型科学数据集的文件格式,常用于存储深度学习模型的权重。

1)保存模型(权重)

# train the model
model = ...

# save the model weights to HDF5 file
model.save_weights('my_model_weights.h5')

2)使用模型

import tensorflow as tf

# define the model architecture
model = ...

# load the saved model weights
model.load_weights('my_model_weights.h5')

# predict using the loaded model weights
model.predict(X)

在这个例子中,我们首先定义了模型的架构,然后使用model.load_weights()函数加载之前保存的模型权重,并在新数据上进行预测。

4.方式四:使用ONNX——不同平台
ONNX是一种开放式的格式,可以用于表示机器学习模型。使用ONNX,您可以将模型从一个框架转换为另一个框架,或者在不同平台上使用模型。
1)保存模型

import onnx

# train the model
model = ...

# convert the model to ONNX format
onnx_model = onnx.convert(model)

# save the model
onnx.save_model(onnx_model, 'my_model.onnx')

2)加载(使用)模型

import onnxruntime

# load the saved model
onnx_session = onnxruntime.InferenceSession('my_model.onnx')

# predict using the loaded model
input_name = onnx_session.get_inputs()[0].name
output_name = onnx_session.get_outputs()[0].name
result = onnx_session.run([output_name], {input_name: X})

参考链接:https://blog.csdn.net/qq_22841387/article/details/130194553

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值