keras之读取h5文件(三)

本文详细介绍了如何使用Keras加载预训练模型,包括模型结构查看、权重打印以及通过test集验证模型性能。从读取h5文件开始,逐步演示了模型加载过程,并展示了关键代码片段。适合初学者理解模型存取与应用实践。
摘要由CSDN通过智能技术生成

0 前言

要求:

  • 安装keras库
  • 需要一个h5文件进行读取
  • h5文件获取方式:
    1、keras之分类数字图片(二),该文章的会生成模型及参数,建议使用这种方法,掌握来龙去脉。
    2、或者直接获取:百度网盘
    提取码:gedt
    在这里插入图片描述

1 读取h5文件

目标:

  • 熟练使用keras存读取h5文件

步骤:

  • 1、加载模型
  • 2、打印模型权重
  • 3、使用test数据集验证,加载的模型是否完整

1.1 加载模型

from datetime import datetime
from keras.models import load_model

# 如下的文件位置,根据自己电脑的文件位置更改
model = load_model('dentify_writtern_number_20210129_1209/epoch:10-loss:0.2525.h5')

# 打印加载的模型结构
print (model.summary())

model已经加载进去,我们可以看一下模型的结构
运行结果:
在这里插入图片描述

1.2 打印模型权重

for i in range(len(model.layers)):
  if len(model.layers[i].get_weights())==1:
    w = model.layers[i].get_weights()
    b=0
  if len(model.layers[i].get_weights())==2:
    w,b = model.layers[i].get_weights()
  
  print(w.shape,b.shape)
model.layers[1].weights

运行结果部分截图:
在这里插入图片描述

1.3 使用test集验证

随机网上找一个图片验证。

import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt

# 自己网上随便找一个jpg图片
img = cv.imread("8.jpg")
gray_img = cv.cvtColor(img, cv.COLOR_RGB2GRAY)
img_resize = cv.resize(gray_img,(28,28))
plt.imshow(img_resize)
plt.show()
# 以上进行图片灰度化,以及reshape操作,使其符合我们数据要求

print(gray_img.shape)
y_pred = model.predict(img_resize.reshape((1,28,28,1)))
print (y_pred)
print (np.argmax(y_pred))

运行结果:
在这里插入图片描述

2 源代码

# 1、加载模型
from datetime import datetime
from keras.models import load_model

# 如下的文件位置,根据自己电脑的文件位置更改
model = load_model('dentify_writtern_number_20210129_1209/epoch:10-loss:0.2525.h5')

# 打印加载的模型结构
print (model.summary())


# 2、打印模型权重
for i in range(len(model.layers)):
  if len(model.layers[i].get_weights())==1:
    w = model.layers[i].get_weights()
    b=0
  if len(model.layers[i].get_weights())==2:
    w,b = model.layers[i].get_weights()
  
  print(w.shape,b.shape)
model.layers[1].weights


# 3、使用test集验证
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt

# 自己网上随便找一个jpg图片
img = cv.imread("8.jpg")
gray_img = cv.cvtColor(img, cv.COLOR_RGB2GRAY)
img_resize = cv.resize(gray_img,(28,28))
plt.imshow(img_resize)
plt.show()
# 以上进行图片灰度化,以及reshape操作,使其符合我们数据要求

print(gray_img.shape)
y_pred = model.predict(img_resize.reshape((1,28,28,1)))
print (y_pred)
print (np.argmax(y_pred))

如有疑惑,以下评论区留言。力所能及,必答之。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值