📅  最后修改于: 2023-12-03 14:50:30.840000             🧑  作者: Mango
卷积神经网络(Convolutional Neural Network, CNN)是一种在计算机视觉任务中广泛使用的深度学习模型,可以用于图像分类、物体检测、人脸识别等任务。
在训练完CNN模型后,需要对模型进行测试。测试的目的是通过输入一张图片,让模型输出对应的分类结果。
import numpy as np
from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing import image
其中,numpy
是一个常用的科学计算库,keras
是一个高级神经网络API,可以建立和训练深度学习模型。
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
对数组进行预处理。
preds = model.predict(x)
predict
方法将输入的图片数组输入模型中进行预测,得到预测结果。
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
是一张测试图片。
以上就是卷积神经网络模型的测试的整个过程。