深度学习——图像分类(CNN)—测试模型

测试模型

    • 1.导入必要的库
    • 2.加载测试数据集
    • 3.假设CSV文件中的图像文件名是完整的路径
    • 4.随机选择一张图片进行展示
    • 5.加载图像
    • 6.使用模型进行预测
    • 7.设置模型的预测结果
    • 8.计算准确率
    • 9.指定test文件夹路径
    • 10.读取名为image_path的图片
    • 11.加载图像
    • 12.检查图像是否为空

训练的模型是上一篇博客发布的内容,这篇博客我们用上一篇博客发的内容测试一下模型。

1.导入必要的库

pandas as pd: Pandas是一个强大的数据分析和处理库,它提供了数据结构(如DataFrame)和工具,用于数据操作和分析。
matplotlib.pyplot as plt: Matplotlib是一个绘图库,pyplot是其中的一个模块,它提供了一个类似于MATLAB的绘图框架。
cv2: 这是OpenCV库的别名,它是一个强大的计算机视觉库,用于图像和视频处理。
random: 这是Python的标准库,它提供了生成随机数的函数。
os: 这是Python的标准库,它提供了与操作系统交互的功能,比如文件和目录操作。
numpy as np: NumPy是一个用于科学计算的库,它提供了高效的数组处理能力,对于图像处理等任务非常有用。

import pandas as pd
import matplotlib.pyplot as plt
import cv2
import random
import os
import numpy as np
from sklearn.metrics import accuracy_score, precision_recall_fscore_support

2.加载测试数据集

使用pandas读取CSV文件

test_labels_df = pd.read_csv('test_labels.csv')

3.假设CSV文件中的图像文件名是完整的路径

从CSV中提取特征和标签

image='D:/rgzn/face/DATASET/99'
image_paths = test_labels_df['image'].values  # 假设'image'列包含了图像文件的路径
true_labels = test_labels_df['label'].values  # 假设'label'列包含了对应的标签

4.随机选择一张图片进行展示

random_index = random.randint(0, len(image_paths) - 1)
image_path = image_paths[random_index]
label = true_labels[random_index]

random_index = random.randint(0, len(image_paths) - 1):

random.randint(0, len(image_paths) - 1):这个函数调用用于生成一个随机整数,其范围是从0到image_paths列表的长度减1。
random_index:这个变量存储了随机生成的索引值。

image_path = image_paths[random_index]:

image_paths[random_index]:这个索引操作符用于根据random_index变量中存储的随机索引值,从image_paths列表中获取对应的图像路径。
image_path:这个变量存储了随机选择的图像路径。

label = true_labels[random_index]:

true_labels[random_index]:这个索引操作符用于根据random_index变量中存储的随机索引值,从true_labels列表中获取对应的标签。
label:这个变量存储了与随机选择的图像路径对应的标签。

5.加载图像

image = cv2.imread(image_path)

cv2.imread(image_path):这个函数调用用于读取图像文件。它返回一个NumPy数组,其中包含了图像的像素数据。
image:这个变量存储了读取到的图像数据,它是一个NumPy数组。

6.使用模型进行预测

test_predictions = model.predict(X_test)

model.predict(X_test):这个函数调用用于使用模型对测试数据集X_test进行预测。
test_predictions:这个变量存储了模型对测试数据集的预测结果。

7.设置模型的预测结果

test_predictions = np.zeros_like(y_test)

np.zeros_like(y_test):这个函数调用用于创建一个与y_test形状相同的数组,并将其所有元素初始化为0。
test_predictions:这个变量存储了转换后的预测结果,其中每个元素都是0。

8.计算准确率

accuracy = accuracy_score(y_test, test_predictions_binary)
print(f'Accuracy: {accuracy:.4f}')

9.指定test文件夹路径

test_folder = 'D:/rgzn/face/DATASET/test'

10.读取名为image_path的图片

# image_path = 'image_path.jpg'  # 假设要读取的图片文件名为image_path.jpg
image_full_path = os.path.join(test_folder, image_path)

11.加载图像

image = cv2.imread(image_full_path)

12.检查图像是否为空

if image is None:print("Error: Failed to load image.")
else:# 显示图像plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))plt.title(f'Label: {label}  Image: {image_path}')plt.axis('off')plt.show()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/13560.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eNSP学习——OSPF单区域配置

目录 相关命令 实验背景 实验目的 实验步骤 实验拓扑 实验编址 实验步骤 1、基础配置 2、部署单区域OSPF网络 3、检查OSPF单区域的配置结果 OSPF——开放式最短路径优先 基于链路状态的协议,具有收敛快、路由无环、扩展性好等优点; 相关命令 […

【JAVA基础之内部类】匿名内部类

🔥作者主页:小林同学的学习笔录 🔥小林同学的专栏:JAVA之基础专栏 目录 1.内部类 1.1 概述 1.1.1 什么是内部类 1.1.2 什么时候使用内部类 1.2 内部类的分类 1.3 成员内部类 1.3.1 获取成员内部类对象的两种方式 1.3.2 经典面试…

用C语言把一棵普通二叉树安排得明明白白

1. 树的相关术语 结点的度:一个结点含有的子树的个数称为该结点的度; 如上图:A的为6 叶结点或终端结点:度为0的结点称为叶结点; 如上图:B、C、H、I...等结点为叶结点 非终端结点或分支结点:度不…

【Linux】-Tomcat安装部署[12]

目录 简介 安装 安装部署JDK环境 解压并安装Tomcat 简介 Tomcat是由Apache开发的一个Servlet容器,实现了对Servlet和JSP的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。 简单来说&#…

【软件工程】【23.10】p2

关键字: 软件复用技术、过程途径、特定需求是文档核心、数据字典条目、高内聚低耦合独立性、数据流图映射模块结构图、UML依赖、用例图关系、RUB迭代、程序规格说明等价类划分、有效性测试的目标、喷泉模型面向对象、软件验证过程、CMMI

【Linux】Centos7安装RabbitMQ

【Linux】Centos7安装RabbitMQ 下载 从 rabbitmq 的 GitHub 仓库下载 https://github.com/rabbitmq/rabbitmq-server/releases rabbitmq 是 erlang 语言编写的,需要先安装 erlang https://github.com/rabbitmq/erlang-rpm/releases 安装 使用rz命令上传 erlang 和 …

Polar 网站被黑

Polar 网站被黑 开题,挺好看的前端,可惜啥也没有。 信息搜集一波,扫目录出现几个敏感目录,但是没什么用。 继续搜集,在返回包中发现了HINT F5XDAXZQNZSV6ZRRNZSF63JTF4base32解码后是一个路由/n0_0ne_f1nd_m3/&#x…

数据仓库实验四:聚类分析实验

目录 一、实验目的二、实验内容和要求三、实验步骤1、建立数据表2、建立数据源视图3、建立挖掘结构Student.dmm4、部署项目并浏览结果5、挖掘模型预测 四、实验结果分析五、实验总结体会 一、实验目的 通过本实验,进一步理解基于划分的、基于层次的、基于密度的聚类…

Easy-poi 和 EasyExcel 选型

目录 共同点地址如何选 共同点 easy-poi 和 easyexcel 都是基于 apache poi 进行二次开发的,底层都是依赖的 apache poi使用简单,都可以通过简单的注解实现excel文件的导入导出 地址 esay poi 是一个开源的 excel,word 处理框架。链接 easy excel 是…

Xed编辑器开发第二期:使用Rust从0到1写一个文本编辑器

第三篇 这部分接着处理用户退出命令以及一些其他新功能; 3.1 使用CtrlQ退出 modifiers: event::KeyModifiers::CONTROL,使用CONTROL替换之前的NONE值即可; 3.2 重构键盘输入 让我们重构我们的代码,以便我们有一个用于低级按键读取的函数&…

《Rust奇幻之旅:从Java和C++开启》第1章Hello world 2/5

讲动人的故事,写懂人的代码 很多程序员都在自学Rust。 🤕但Rust的学习曲线是真的陡,让人有点儿怵头。 程序员工作压力大,能用来自学新东西的时间简直就是凤毛麟角。 📕目前,在豆瓣上有7本Rust入门同类书。它们虽有高分评价,但仍存在不足。 首先,就是它们介绍的Rust新…

什么是谷歌爬虫?

其实就是谷歌用来浏览网络信息的一个自动化程序,他们会在你的网站爬取,寻找和搜集信息,谷歌爬虫可以说决定着一个网站在谷歌的生死 谷歌爬虫的作用机制就在于发现新网站以及新网页,然后他会把网页的内容带回去,更新到…

PikaUnsafe upfileupload

1.client check 客户端检测,前端js检测,禁用js和修改后缀名即可。 php格式不能上传,我们修改后缀上传。 蚁剑成功连接。 2.MIME type 这个就是 content-type 规定上传类型,上面的方法也能成功,也可以修改 conten-ty…

面试框架【面试准备】

前言 2023-9-12 12:12:04 2023-09-14 16:13:04 公开发布于 2024-5-22 00:16:21 以下内容源自《【面试准备】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是https://blog.csdn.net/qq_51625007 禁止其他平…

奇偶数递增递减-第13届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第70讲。 奇偶数递增递减&a…

vite+ts+mock+vue-router+pinia实现vue的路由权限

0.权限管理 前端的权限管理主要分为如下: 接口权限路由权限菜单权限按钮权限 权限是对特定资源的访问许可,所谓权限控制,也就是确保用户只能访问到被分配的资源 1.项目搭建 创建vite项目 yarn create vite配置别名 npm install path -…

4. C++入门:内联函数、auto关键字、范围for及nullptr

内联函数 概念 以inline修饰的函数叫做内联函数,编译时C编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率 对比C的宏 C语言不足:宏 #define ADD(x, y) ((x)(y))int main() {int ret…

python实现520表白图案

今天是520哦,作为程序员有必要通过自己的专业知识来向你的爱人表达下你的爱意。那么python中怎么实现绘制520表白图案呢?这里给出方法: 1、使用图形库(如turtle) 使用turtle模块,你可以绘制各种形状和图案…

Docker 安装kingbase V8r6

下载 官网下载,注意:这里下载 Docker 版本v8r6 安装 # 导入镜像 docker load -i kingbase.tar# 重命名 docker tag [image-name]:[tag] [new-image-name]:[new-tag]# 删除 docker rmi [image-name]:[tag]# 创建容器 docker run -tid \ --privileged \…

【前端】使用 Canvas 实现贪吃蛇小游戏

使用 Canvas 实现贪吃蛇小游戏 在这篇博客中,我们将介绍如何使用 HTML5 Canvas 和 JavaScript 实现一个简单的贪吃蛇(Snake)小游戏。这个项目是一个基础的游戏开发练习,它可以帮助你理解如何在 Canvas 上绘图、如何处理用户输入以…