打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
keras加载h5模型文件,进行图像分类任务的结果预测。

这是一个皮肤病8分类任务。首先展示类别名称列表:

classes_name_list=['AK','BCC','BKL','DF','MEL','NV','SCC','VASC']

以上代码表明,分类任务为8分类,标签分别为AK,BCC,BKL等等。

通过对DenseNet121进行迁移学习,将顶层修改为自己设计的8分类器,并在训练集上训练,(训练图像全部归一化为0-1范围内),获得训练好的模型:model.h5

加载该预训练模型:

import tensorflow as tfmodel=tf.keras.models.load_model('model.h5')

该模型结构如下图:

1.首先我们使用skimage模块来预处理图像:

加载待预测图像(皮肤病图像辣眼睛):

import skimagefilename=r'datasets\test\MEL\ISIC_0000013.jpg'test_img=skimage.io.imread(filename) #加载测试图像,直接得到多维数组test_img=skimage.transform.resize(test_img,(224,224,3))  #根据模型输入尺寸要求,重定义大小test_img=np.expand_dims(test_img,0) #模型输入要求为四维张量,所以需要增加一个batch_size维度pred=model.predict(test_img) #将测试图像送入模型,进行预测print('预测结果:',end='')print(classes_name_list[pred.argmax()]) #输出类别预测结果
预测结果:MEL

2.接着换用keras自带的图像预处理模块进行预处理:

import tensorflow as tffilename=r'datasets\test\MEL\ISIC_0000013.jpg'test_img=tf.keras.preprocessing.image.load_img(filename,target_size=(224,224,3)) #此处得到的是pillow图像Image实例test_img=tf.keras.preprocessing.image.img_to_array(test_img) #将Image实例转化为多维数组test_img=test_img/255  #此处还需要将0-255转化为0-1test_img=np.expand_dims(test_img,0) #将三维输入图像拓展成四维张量pred=model.predict(test_img) #预测print('预测结果:',end='')print(classes_name_list[pred.argmax()])  #打印结果
预测结果:MEL

可以看出,使用skimage和keras自带的图像预处理模块都能实现准确预测,唯一不同是,skimage读取图像后自动转换为0-1范围,而keras中使用的需要手动转换0-255为0-1.

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
快速训练残差网络 ResNet-101,完成图像分类与预测,精度高达 98% | 迁移学习实战
基于OpenCV的焊件缺陷检测
OpenCV钢铁平面焊接的缺陷检测案例
为深度学习模型加载自定义图像数据集:第1部分
使用迁移学习和 TensorFlow 进行食品分类
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服