在keras中对单一输入图像进行预测并返回预测结果操作
作者:Kun Li 时间:2023-03-10 10:07:04
模型经过训练测试之后,我们往往用一两张图对模型预测结果进行分析讨论,那么下面介绍在keras中用已训练的模型经过测试的方法。
下面是以利用预训练的ResNet来展示预测的效果,选了一张狗的图片,是来自一个kaggle比赛的。
预测结果第一个是一种苏格兰品种的狗,我也不知道准不准 == 。
import numpy as np
from keras.applications.imagenet_utils import decode_predictions
from keras.preprocessing import image
from keras.applications import *
import os
# 忽略硬件加速的警告信息
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
file_path = 'images/0a70f64352edfef4c82c22015f0e3a20.jpg'
img = image.load_img(file_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
model = ResNet50(weights='imagenet')
y = model.predict(x)
# print(np.argmax(y))
print('Predicted:', decode_predictions(y, top=3)[0])
讲几点:
1.输入img转成numpy数组,shape处理成(224,224,3)一般来讲,对于预训练模型是有一个最小的尺寸值,比最小尺寸大就可以了。在ResNet中,尺寸最小大于等于197即可。
2.要对输入shape扩维变成(None,224,224,3),第一个None是batches,模型并不知道你输入的batches是多少,但是维度必须和ResNet的输入要一致。
3.虽然用的是ResNet,自己设计的模型也一个道理,保留一下训练的权重,把model模块和预测模块分开写,这个时候load一下权重,再预测即可。
补充知识:keras:怎样使用 fit_generator 来训练多个不同类型的输出
这个例子非常简单明了,模型由1个输入,2个输出,两个输出的分支分别使用MSE作为损失。
x = Convolution2D(8, 5, 5, subsample=(1, 1))(image_input)
x = Activation('relu')(x)
x = Flatten()(x)
x = Dense(50, W_regularizer=l2(0.0001))(x)
x = Activation('relu')(x)
output1 = Dense(1, activation='linear', name='output1')(x)
output2 = Dense(1, activation='linear', name='output2')(x)
model = Model(input=image_input, output=[output1, output2])
model.compile(optimizer='adam', loss={'output1': 'mean_squared_error', 'output2': 'mean_squared_error'})
产生训练数据的生成器,这里y=[y1,y2].
batch_generator(x, y, batch_size):
....transform images
....generate batch batch of size: batch_size
yield(X_batch, {'output1': y1, 'output2': y2} ))
之后,调用fit_generator
model.fit_generator(batch_generator(X_train, y_train, batch_size))
原问题链接。
来源:https://blog.csdn.net/u012193416/article/details/79375832
标签:keras,图像,预测,结果
0
投稿
猜你喜欢
SQL中from_unixtime函数的使用方法实例
2024-01-14 12:45:01
Go本地测试小技巧解耦任务拆解
2023-08-29 14:09:26
简单了解SQL常用删除语句原理区别
2024-01-14 22:38:57
ASP中使用SQL语句教程
2008-09-03 12:17:00
mysql 5.7.17 winx64解压版安装配置方法图文教程
2024-01-22 07:47:16
正则表达式语法速查
2007-11-11 10:43:00
PHP实现图片批量打包下载功能
2024-05-11 09:47:21
什么是XML
2008-09-05 17:21:00
python数值基础知识浅析
2021-12-10 07:07:49
python中__slots__节约内存的具体做法
2023-04-10 16:28:34
Php header()函数语法及使用代码
2023-09-04 13:32:20
利用python做数据拟合详情
2023-04-22 15:32:17
Bootstrap modal使用及点击外部不消失的解决方法
2024-04-10 13:56:45
python批量读取文件名并写入txt文件中
2021-02-18 16:32:29
Python的dict字典结构操作方法学习笔记
2022-10-27 10:56:21
Python实现Opencv cv2.Canny()边缘检测
2022-12-01 13:26:37
PHP session会话操作技巧小结
2023-11-16 23:58:20
Python实现socket非阻塞通讯功能示例
2022-05-16 03:18:25
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
2023-11-23 11:35:00
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2022-03-02 10:43:08