【深度学习21天学习挑战赛】备忘篇:模型复用——模型的保存与加载

活动地址:CSDN21天学习挑战赛

最近一遍学,一遍尝试进行模型的简单应用,需求驱动也是一个好的学习动力。

那么问题来了,难道我们每次应用模型,都要从头到尾训练一遍,然后再去做识别任务吗?

当然不是,所以,记录一下简单的模型保存模型加载过程。

只是抛砖引玉,和给自己记录一下。更多使用,请参考官方文档

识别手写数字模型为例。

1、保存模型

在识别手写数字模型训练之后,保存代码。

# 保存模型
model.save('test.h5') #保存到与代码文件同目录,h5:模型文件后缀名

在这里插入图片描述

保存后,即可看到,代码同目录下,我们保存的模型文件。
在这里插入图片描述

2、加载模型

在复用模型的地方:

my_model = tf.keras.models.load_model('test.h5') 

即可加载我们保存过的模型。

加载后,即可使用模型的一些方法了。

import tensorflow as tf
from tensorflow.keras import datasets, layers, models
import matplotlib.pyplot as plt
# 加载并预处理数据
(train_images, train_labels), (test_images, test_labels) = datasets.mnist.load_data()
train_images, test_images = train_images / 255.0, test_images / 255.0
# 加载模型
my_model = tf.keras.models.load_model('test.h5') 
my_model.summary()

在这里插入图片描述

在这里插入图片描述

3、保存模型的更多姿势

上面这种保存方式,是完整保存模式,保存的模型文件包括:

  • architecture 模型的结构
  • weight values 模型的权值
  • training config 模型的配置:即我们通过compile编译模型的一些信息,如优化器,损失函数等
  • optimizer and its state 优化器的状态信息,我们可以接着之前的训练继续训练

也可以分别保存:

3.1 保存模型结构

# 保存模型结构
with open('model_config.json', 'w') as json_file:
    json_file.write(json_config)


# 加载
with open('model_config.json') as json_file:
    json_config = json_file.read()

3.2 保存模型权重

# 保存权重到磁盘,注意,这里是一个 h5 文件哦!
model.save_weights('my_weights.h5')
 
# 新模型从磁盘加载权重
new_model.load_weights('my_weights.h5')

3.3 保存为SavedModel格式

另外,也可以将模型保存为tensorflow标准的SavedModel格式,这是对tensorflow对象标准的序列化格式,是官方推荐使用,不同的是,他不是将模型保存为一个单独的文件,而是有几个文件组成。

# 模型保存,注意:仅仅是多了一个save_format的参数而已
# 注意:这里的'path_to_saved_model'不再是模型名称,仅仅是一个文件夹,模型会保存在这个文件夹之下
model.save('mymodel', save_format='tf')
 
# 加载模型,通过指定存放模型的文件夹来加载
new_model = keras.models.load_model('mymodel')

需要注意的是:这种方式依然会保存模型的所有信息,即“网络结构、权重、配置、优化器状态”四个信息,所以可以接着训练

这种方法,可以参考大佬文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

藏蓝色攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值