使用VGG模型进行预测

使用VGG模型进行预测

 VGG整个模型已经写好了,我们直接用一张图片来进行预测,查看预测的类别是否正确和准确率是否很高。
 我们用tf.keras.applications.vgg16中引用VGG16模型、preprocess_input、decode_predictions。VGG16模型中包括整个网络,preprocess_input对四维数组进行预处理,decode_predictions对预测结果进行解码得到标签。

1.导入相关的库

from tensorflow.keras.applications.vgg16 import VGG16,preprocess_input,decode_predictions
from tensorflow.keras.preprocessing.image import load_img, img_to_array
import matplotlib.pyplot as plt

2.导入模型

model = VGG16() 
#model = VGG16(weights = 'imagenet', include_top = False)  不包括全连接层
model.summary()

模型部分结构

3.导入图片进行预测

3.1导入图片

img = load_img(path = 'C:/Users/86199/Desktop/python_code/pillow图像处理/东北虎.jfif',
              target_size=(224, 224))
plt.imshow(img, 'gray')
plt.axis('off')
plt.show()

预测的图片

3.2 将图片转化为数组并升维

img = img_to_array(img)
img = img.reshape((1,img.shape[0], img.shape[1], img.shape[2]))

3.3 对图片进行归一化处理并预测

img = preprocess_input(img)
y_predictions = model.predict(img)

3.4 对结果进行解码

label = decode_predictions(y_predictions)
print(label)

在这里插入图片描述
以上打印的结果是两个列表。

3.5 输入预测的类别和概率

print('预测的类别是%s,并且预测的概率为%f'%(label[0][0][1],label[0][0][2]))

预测的类别是tiger,并且预测的概率为0.949506

4.总结

4.1 完整代码

#使用pre_trained模型进行VGG测试,在keras.appliactions中有很多模型。
from tensorflow.keras.applications.vgg16 import VGG16,preprocess_input,decode_predictions
from tensorflow.keras.preprocessing.image import load_img, img_to_array
import matplotlib.pyplot as plt
model = VGG16()  #model = VGG16(weights = 'imagenet', include_top = False)  不包括全连接层
img = load_img(path = 'C:/Users/86199/Desktop/python_code/pillow图像处理/东北虎.jfif',
              target_size=(224, 224))
plt.imshow(img, 'gray')
plt.axis('off')
plt.show()
img = img_to_array(img)
img = img.reshape((1,img.shape[0], img.shape[1], img.shape[2]))
#在预测之前,我们要对图片进行归一化处理
img = preprocess_input(img)
y_predictions = model.predict(img)
#print(y_predictions)
#对对应的结果进行解码
label = decode_predictions(y_predictions)
print(label)
print('预测的类别是%s,并且预测的概率为%f'%(label[0][0][1],label[0][0][2]))
#print(label)
#model.summary()

最终结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值