[ Keras ] ——基本使用:(1) 训练好的模型结构与参数的保存以及调用_keras保存模型参数-程序员宅基地

方法一:一步保存模型结构与参数。

○模型保存:    

    (1)、使用 model.save('模型名称') 命令。

    

    (2) 运行程序后会在工程目录下生成 model.h5 文件。

    

○模型读取:

    (1)、在工程路径下导入模型文件,使用 load_model('model.h5') 。

    

    (2)、结果,发现和之前结果一样。

    

 

方法二:模型结构与参数分开保存。

○模型保存

    (1)、使用这两个命令保存网络结构。相应在工程目录下会生成 my_model_architecture.json 文件

json_string = model.to_json()
open('my_model_architecture.json', 'w').write(json_string)

    (2)、使用这个命令保存网络的参数。相应在工程目录下会生成 my_model_weights.h5 文件

model.save_weights('my_model_weights.h5')

    

    

○模型还原

    (1)通过下面语句读取结构

from keras.models import model_from_json
model = model_from_json(open('my_model_architecture.json').read())

    (2)通过下面语句读取参数。(注,参数读取语句需要在模型 compile 之后)

model.load_weights('my_model_weights.h5')

    

 

方法三:从Numpy中逐层导入权重。

关键代码:http://keras-cn.readthedocs.io/en/latest/layers/about_layer/

layer.get_weights() # 返回层的权重(numpy array)
layer.set_weights(weights) # 从numpy array中将权重加载到该层中,要求numpy array的形状与* layer.get_weights()的形状相同

逐层导入的代码思想:(参考:参考来源)

assert os.path.exists(weights_path), 'Model weights not found (see "weights_path" variable in script).'
f = h5py.File(weights_path)
for k in range(f.attrs['nb_layers']):
    if k >= len(model.layers):
        # we don't look at the last (fully-connected) layers in the savefile
        break
    g = f['layer_{}'.format(k)]
    weights = [g['param_{}'.format(p)] for p in range(g.attrs['nb_params'])]
    model.layers[k].set_weights(weights)
f.close()
print('Model loaded.')

 

[ 参考文献]

    https://blog.csdn.net/cymy001/article/details/78647640

    https://blog.csdn.net/baimafujinji/article/details/42110831

    https://blog.csdn.net/baoyan2015/article/details/62040459

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jdzwanghao/article/details/80168473

智能推荐

Linux下scrapy安装问题汇总_linux安装scrapy的问题-程序员宅基地

文章浏览阅读3.8k次。首先,在安装scrapy之前,需要用apt-get以及pip安装以下依赖包:apt-get install build-essential python3-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev在Linux系统下python3.4版本下成功安装scrapy:pip install_linux安装scrapy的问题

pfm格式转png格式_将深度图像(.pfm格式)转换为深度图像数据(.png格式)-程序员宅基地

文章浏览阅读6.1k次,点赞8次,收藏29次。PFM是一种用浮点数存储图片的文件格式,包含文件信息header和二进制数据raster。在一些数据集中经常可以看到以pfm格式存储的视差图。pfm格式的文件不利于浏览,可以转成png格式文件已方便浏览。PFM的头文件共有3行:二进制数据区:图像的读取顺序按照从下到上,从左到右进行的顺序进行读取。当pfm文件只有一张图片的矩阵时,代码如下:# -*- coding: UT..._将深度图像(.pfm格式)转换为深度图像数据(.png格式)

win10使用roLabelimg(可标注旋转矩形)保存带有汉字的label及xml转txt(含文件)_rolabellmg下载-程序员宅基地

文章浏览阅读2.2k次,点赞2次,收藏22次。win10使用roLabelimg保存带有汉字的label(含文件)简介roLabelimg可以标注旋转矩形,虽不太好用,但比不能标注强太多太多,转载请注明出处。文件地址源文件修改&编译将roLabelImg.py中的#!/usr/bin/env python# -*- coding: utf8 -*-更改为#!/usr/bin/env python# -*- coding: utf-8 -*-编译pyrcc5 -o resources.py resources.qrc_rolabellmg下载

对Neo4j导出数据做知识图谱可视化 D3库实现_neo4jd3-程序员宅基地

文章浏览阅读2.5w次,点赞52次,收藏360次。知识图谱可视化 D3库的使用引言Neo4j导出数据引言好久没用D3库作可视化了,现在主要是用百度的echarts库,在项目中做简单的图表太方便了。但像是做关系图其实用echarts也很方便,这次用D3实现主要是复习一下以前做的东西,顺便记录一下。以下是我参考到的实例代码:D3官方图实例参考echarts做关系图实例参考Neo4j导出数据我们先通过Cypher查询将数据从Neo4j中查询出来,Neo4j构建和查询可以参考我上篇博客基于Neo4j的外贸企业关系图谱做企业相似度查询查询后的结果如下_neo4jd3

拓扑空间、距离空间、向量空间和内积空间_拓扑和距离的关系-程序员宅基地

文章浏览阅读7.5k次。拓扑空间是最基本的,是集合+开集构成,这个空间里没有距离。就像人群+关系=社会一样。距离空间=拓扑空间+距离。这个距离的来源主要是定义出来的。距离空间是拓扑空间的一个子集,也可以理解为是一个子概念。同理向量空间又是距离空间的一个子集,子概念。对拓扑向量空间来说,它是一个度量空间当且仅当其有可数局部拓扑基(见Rudin的泛函分析,对一般拓扑空间来说的充要条件还要多一个,这就是NS度量化定理,见Munk_拓扑和距离的关系

dubbo实战之一:准备和初体验,Java进阶-程序员宅基地

文章浏览阅读923次,点赞21次,收藏15次。Java架构学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

随便推点

Qt 项目(CMake)设置国际化支持_qt5 cmake 多语言-程序员宅基地

文章浏览阅读3.2k次,点赞2次,收藏17次。文章目录国际化原理操作步骤注意:项目提交:参考:简 述: 准备将我写的悬浮网速窗口上面支持国际化(多语言);记录一下通过 CMake + Qt 来对项目设置国际化。本文初发于 “偕臧的小站” ifmet.cn,同步转载于此。编程环境:  ???? uos20 amd64 ???? Qt 5.11.3 ???? cmake 3.13.4 ???? gdb8.0国际化原理​ Qt 实现多语言的关键原理如图,先扫描所有的源码文件 .cpp、.ui 文件,找到被 tr() 包裹的字符_qt5 cmake 多语言

游戏编程模式------套路_数独套路女朋友-程序员宅基地

文章浏览阅读156次。https://blog.csdn.net/lhcmt1/article/details/80601414 //原文https://gpp.tkchu.me/behavioral-patterns.html //博客一:序列模式:1. 双缓冲模式工作原理: 例如计算机的渲染系统。一帧代表显卡读取的帧,一帧代表显卡写入的帧。何时使用: 可能有可见的错误(撕裂之类..._数独套路女朋友

如何轻松利用FUSB340TMX USB Type-C方案快速地助你实现完美的解决方案-程序员宅基地

文章浏览阅读154次。安森美深力科 10Gbps USB3.1超高速开关FUSB340TMX是 10Gbps USB3.1 超高速开关,典型带宽达 10 GHz,具有 1.5 V 至 5 V 的宽 VDD 范围,提供 2KV HBM ESD 保护,符合 Jedec 标准,有源功耗低于 12 uA,关断功耗低于1 uA,在2.5GHz时的插入损耗仅-1 dB,采用18引脚的 TMLP 小型封装(2.0mm x 2.8mm x 0.4mm),是适用于手机、平板电脑、笔记本电脑、超便携应用所需的可正反逆插的 Type-C USB 3_fusb340tmx

android nfc框架分析,Android NFC读写Tag快速框架-程序员宅基地

文章浏览阅读310次。这篇文章只讲NFC读写非接卡、读写标签的方式,且这里只讲符合TypeA和IsoDep技术标准的Tag,其他类型的Tag框架类似,只是有些许差别添加权限AndroidManifests.xml中添加:添加intent filterAndroidManifests.xml中添加:android:name=".MainActivity"android:label="@string/app_name"an..._android 卡片类型框架

1863. 找出所有子集的异或总和再求和 01.11(五)-程序员宅基地

文章浏览阅读352次,点赞10次,收藏7次。[5,1,6] 的异或总和为 5 XOR 1 XOR 6 = 2。- [1,3] 的异或总和为 1 XOR 3 = 2。- [5,1] 的异或总和为 5 XOR 1 = 4。- [5,6] 的异或总和为 5 XOR 6 = 3。- [1,6] 的异或总和为 1 XOR 6 = 7。每个子集的全部异或总和值之和为 480。- [1] 的异或总和为 1。- [3] 的异或总和为 3。- [5] 的异或总和为 5。- [1] 的异或总和为 1。- [6] 的异或总和为 6。

230801_towards open-world recommendation with knowledge a-程序员宅基地

文章浏览阅读208次。dataset。_towards open-world recommendation with knowledge augmentation from large lan