Keras 是源于 Theano 或 者TensorFlow 的一个深度学习框架,它的设计来源于Torch,编程语言使用的是 Python ,是一个拥有强大功能、内容抽象,而且高度模块化的神经网络库。
今天小编给大家分享的就是Keras 模型的保存与加载,希望对大家学习和使用Keras 有所帮助。
一、Keras模型保存和加载的基础介绍
Keras模型保存和加载一般是保存成hdf5格式。Keras模型主要有两种,序贯模型即Sequential、以及函数式模型Model,相对来说函数模型Model使用范围更广,序贯模型Sequential可看作是函数模型的一种特殊情况。
两类模型有一些方法是相同的:
model.summary():打印模型概况
model.get_config():返回包含模型配置信息的Python字典。
model.get_layer():依据层名或下标获得层对象
model.get_weights():返回模型权重张量的列表,类型为numpy array
model.set_weights():从numpy array里将权重载入给模型,要求数组具有与model.get_weights()相同的形状。
model.to_json:返回代表模型的JSON字符串,仅包含网络结构,不包含权值。
model.to_yaml:与model.to_json类似,同样可以从产生的YAML字符串中重构模型
model.save_weights(filepath):将模型权重保存到指定路径,文件类型是HDF5(后缀是.h5)
model.load_weights(filepath, by_name=False):从HDF5文件中加载权重到当前模型中, 默认情况下模型的结构将保持不变。如果想将权重载入不同的模型(有些层相同)中,则设置by_name=True,只有名字匹配的层才会载入权重
二、Keras模型保存和加载方式
1.保存所有状态
(1)保存模型和模型图
# 保存模型 model.save(file_path) model_name = '{}/{}_{}_{}_v2.h5'.format(params['model_dir'],params['filters'],params['pool_size_1'],params['pool_size_2']) model.save(model_name) # 保存模型图 from keras.utils import plot_model # 需要安装pip install pydot model_plot = '{}/{}_{}_{}_v2.png'.format(params['model_dir'],params['filters'],params['pool_size_1'],params['pool_size_2']) plot_model(model, to_file=model_plot)
(2)加载模型
from keras.models import load_model model_path = '../docs/keras/100_2_3_v2.h5' model = load_model(model_path)
利弊分析:
a.模型保存和加载就只需一行代码,写起来简单快捷
b.既能保存模型的结构和参数,又能保存训练配置等信息。方便我们从上次训练中断的地方再次进行训练优化。
c.占用空间过大,上传或者同步费时。
2.只保存模型结构和模型参数
(1)保存模型
import yaml import json # 保存模型结构到yaml文件或者json文件 yaml_string = model.to_yaml() open('../docs/keras/model_architecture.yaml', 'w').write(yaml_string) # json_string = model.to_json() # open('../docs/keras/model_architecture.json', 'w').write(json_string) # 保存模型参数到h5文件 model.save_weights('../docs/keras/model_weights.h5')
(2)加载模型
import yaml import json from keras.models import model_from_json from keras.models import model_from_yaml # 加载模型结构 model = model_from_yaml(open('../docs/keras/model_architecture.yaml').read()) # model = model_from_json(open('../docs/keras/model_architecture.json').read()) # 加载模型参数 model.load_weights('../docs/keras/model_weights.h5')
利弊分析:
a.能够节省硬盘空间,便于同步和协作
b.会丢失训练的一部分配置信息
数据分析咨询请扫描二维码
明确职业发展目标与学习需求 对于新手,选择入门级课程有助于掌握数据分析的基础概念和工具。 拥有一定基础的人可以考虑深入学 ...
2024-12-02在当今数字化时代,数据分析岗位扮演着至关重要的角色。从数据的收集到最终的业务支持与决策,数据分析专员肩负着多方面的责任。 ...
2024-12-02在当今数字化时代,数据分析已经成为企业的核心竞争力之一。从数据的收集到分析再到最终的决策支持,数据分析人员在企业中扮演着 ...
2024-12-02数据分析,看似高深莫测,实则贴近日常生活。许多人误以为数据分析需要高超技能如Python编程或算法应用,然而,真正的数据分析并 ...
2024-12-02数据分析在当今职场中扮演着至关重要的角色,但在追求这一技能的过程中,我们常常陷入各种误区。从认知误区到工具依赖,这些障碍 ...
2024-12-02初阶阶段 统计学基础:深入理解概率、假设检验及回归分析,揭示数据背后的价值意义。 Excel高级应用:掌握数据导入、清洗和动态 ...
2024-12-02基础阶段 统计学基础: 掌握概率、假设检验、回归分析等内容,这些是解读数据背后含义的关键。 Excel高级应用: 学习数据导入、 ...
2024-12-02实习机会 数据分析师实习生在当今数据驱动的时代中拥有丰富的机会,但竞争也异常激烈。他们的日常工作包括从各个来源收集数据, ...
2024-12-02在当今数据驱动的时代,数据分析师的实习机会异常丰富且竞争激烈。本文将深入探讨数据分析师实习机会及建议,揭示行业内的关键信 ...
2024-12-02基础知识 统计学: 掌握数据分析的关键是理解统计学基本概念,如平均值、中位数和回归分析。这些概念为分析数据提供了重要框架 ...
2024-12-02基础知识 数据分析领域的入门之路并不是一帆风顺,就像搭建高楼大厦一样,需要坚实的基础。首先,我们来探讨几个关键的基础知识 ...
2024-12-02在当今信息爆炸的时代,数据成为企业决策的关键驱动力。成为一名优秀的数据分析师,并非仅仅掌握数据的本质,更需要具备多方面的 ...
2024-12-02数据收集与整理 数据分析师需要从多个来源收集数据,包括内部数据库、外部市场数据和社交媒体。 清洗和整理数据以确保准确性和 ...
2024-12-02在当今信息爆炸的时代,数据分析扮演着愈发关键的角色。从数据的收集、清洗、分析到最终的报告撰写,数据分析涵盖了广泛而深入的 ...
2024-12-02揭秘数据分析求职之路 在当今竞争激烈的就业市场中,数据分析专业的就业形势备受关注。究竟数据分析领域的求职难度如何?让我们 ...
2024-12-02数据分析就业挑战与应对策略 在当今社会,数据分析专业的就业并非一帆风顺。竞争激烈,技能要求高,许多人发现找工作并不容易。 ...
2024-12-02在追求成为一名出色的数据分析师的道路上,技术和软技能同样重要。技术技能涵盖了诸多方面,其中包括: 统计学知识 探索庞大数据 ...
2024-12-02从技术到软技能:数据分析的全貌 学习数据分析是一项综合性任务,涉及多方面技能。这些技能主要可以划分为技术技能和软技能两大 ...
2024-12-02作为初学者踏入数据分析领域,掌握一系列关键能力至关重要。这些技能不仅涵盖基础工具的使用,还包括深入的分析方法、对业务的理 ...
2024-12-02欢迎探寻数据分析的奇妙世界!对于初学者而言,融会贯通数据领域的复杂性可能有些令人望而却步。然而,不必惊慌,因为我们将一起 ...
2024-12-02