# 使用训练好的模型对单个图像进行预测 img = test_images[1] print(img.shape) # tf.keras 模型经过了优化,可同时对一个批或一组样本进行预测 img = (np.expand_dims(img, 0)) print(img.shape) # 增加相应标签 predictions_single = probability_model.predict(img) print(predictions_single) plot_value_array(1, predictions_single[0], test_labels) _ = plt.xticks(range(10), class_names, rotation=45)
时间: 2024-03-28 21:39:44 浏览: 69
这段代码是用来对一个图像进行分类预测的,其中test_images[1]是测试数据集中的第二张图片,img = (np.expand_dims(img, 0))是将图片转化为模型所需的输入格式,predictions_single = probability_model.predict(img)是用训练好的模型对图片进行预测,输出的是每个类别的概率,最后调用plot_value_array函数进行可视化展示。这段代码的作用是用来测试模型对单张图片的分类效果。
相关问题
def plot_image(i, predictions_array, true_label, img): predictions_array, true_label, img = predictions_array, true_label[i], img[i] plt.grid(False) plt.xticks([]) plt.yticks([]) plt.imshow(img, cmap=plt.cm.binary) predicted_label = np.argmax(predictions_array) if predicted_label == true_label: color = 'blue' else: color = 'red' plt.xlabel("{} {:2.0f}% ({})".format(class_names[predicted_label], 100 * np.max(predictions_array), class_names[true_label]), color=color) def plot_value_array(i, predictions_array, true_label): predictions_array, true_label = predictions_array, true_label[i] plt.grid(False) plt.xticks(range(10)) plt.yticks([]) thisplot = plt.bar(range(10), predictions_array, color="#777777") plt.ylim([0, 1]) predicted_label = np.argmax(predictions_array) thisplot[predicted_label].set_color('red') thisplot[true_label].set_color('blue') print("验证预测结果:") i = 12 plt.figure(figsize=(6, 3)) plt.subplot(1, 2, 1) plot_image(i, predictions[i], test_labels, test_images) plt.subplot(1, 2, 2) plot_value_array(i, predictions[i], test_labels) plt.show() num_rows = 5 num_cols = 3 num_images = num_rows * num_cols plt.figure(figsize=(2 * 2 * num_cols, 2 * num_rows)) for i in range(num_images): plt.subplot(num_rows, 2 * num_cols, 2 * i + 1) plot_image(i, predictions[i], test_labels, test_images) plt.subplot(num_rows, 2 * num_cols, 2 * i + 2) plot_value_array(i, predictions[i], test_labels) plt.tight_layout() plt.show() # 使用训练好的模型对单个图像进行预测 img = test_images[1] print(img.shape) # tf.keras 模型经过了优化,可同时对一个批或一组样本进行预测 img = (np.expand_dims(img, 0)) print(img.shape) # 增加相应标签 predictions_single = probability_model.predict(img) print(predictions_single) plot_value_array(1, predictions_single[0], test_labels) _ = plt.xticks(range(10), class_names, rotation=45)
这段代码的作用是用来展示模型对测试数据集的预测结果。首先定义了两个函数plot_image和plot_value_array,用于可视化展示预测结果。然后调用这两个函数来展示第12张测试图片的预测结果和对应的概率分布情况。接着定义了num_rows、num_cols和num_images三个变量,分别表示展示预测结果的行数、列数和总图片数。最后使用for循环展示num_images张测试图片的预测结果和对应的概率分布情况。其中,使用了tight_layout函数来调整子图之间的间距,使得展示效果更加美观。最后使用训练好的模型对单个图片进行了预测,并展示了预测结果和对应的概率分布情况。
阅读全文