📜  卷积神经网络模型的测试(1)

📅  最后修改于: 2023-12-03 14:50:30.840000             🧑  作者: Mango

卷积神经网络模型的测试

卷积神经网络(Convolutional Neural Network, CNN)是一种在计算机视觉任务中广泛使用的深度学习模型,可以用于图像分类、物体检测、人脸识别等任务。

在训练完CNN模型后,需要对模型进行测试。测试的目的是通过输入一张图片,让模型输出对应的分类结果。

步骤
  1. 导入相关的库和模型
import numpy as np
from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing import image

其中,numpy是一个常用的科学计算库,keras是一个高级神经网络API,可以建立和训练深度学习模型。

  1. 加载模型和预处理图片
model = load_model('my_model.h5')
img_path = 'test_image.jpg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)

load_model用于从文件中加载训练好的模型,在这里假设模型保存在my_model.h5中。

load_img用于加载图片,target_size参数指定图片的大小。img_to_array将图片转换为数组表示,expand_dims将数组添加一个维度,preprocess_input对数组进行预处理。

  1. 进行预测
preds = model.predict(x)

predict方法将输入的图片数组输入模型中进行预测,得到预测结果。

  1. 解码预测结果
from tensorflow.keras.applications.resnet50 import decode_predictions

decode_predictions(preds, top=3)[0]

decode_predictions方法用于将预测结果解码成人类可读的分类标签。

示例

下面是一个完整的示例:

import numpy as np
from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing import image
from tensorflow.keras.applications.resnet50 import preprocess_input, decode_predictions

model = load_model('my_model.h5')
img_path = 'test_image.jpg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)

preds = model.predict(x)
print('Predicted:', decode_predictions(preds, top=3)[0])

其中my_model.h5是已经训练好的模型,test_image.jpg是一张测试图片。

以上就是卷积神经网络模型的测试的整个过程。