时间:2021-05-22
模型经过训练测试之后,我们往往用一两张图对模型预测结果进行分析讨论,那么下面介绍在keras中用已训练的模型经过测试的方法。
下面是以利用预训练的ResNet来展示预测的效果,选了一张狗的图片,是来自一个kaggle比赛的。
预测结果第一个是一种苏格兰品种的狗,我也不知道准不准 == 。
import numpy as npfrom keras.applications.imagenet_utils import decode_predictionsfrom keras.preprocessing import imagefrom 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))
原问题链接。
以上这篇在keras中对单一输入图像进行预测并返回预测结果操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
最近一直在用TF做CNN的图像分类,当softmax层得到预测结果后,我希望能够看到预测结果,以便和标签之间进行比较。特此补上,以便自己记忆。我现在通过soft
使用Keras训练好的模型用来直接进行预测,这个时候我们该怎么做呢?【我这里使用的就是一个图片分类网络】现在让我来说说怎么样使用已经训练好的模型来进行预测判定把
在使用keras搭建神经网络时,有时需要查看一下预测值和真是值的具体数值,然后可以进行一些其他的操作。这几天查阅了很多资料。好像没办法直接access到训练时的
因为需要,要重写训练好的keras模型,虽然只具备预测功能,但是发现还是有很多坑要趟过。其中Dropout这个坑,我记忆犹新。一开始,我以为预测时要保持和训练时
SEO优化是一件很难预测效果的事情,只有根据方式并符合要求操作,才有可能起效。企业对优化都抱着很大的期望,然而要不负所望就需要持之以恒,那么网站怎样进行优化