深度学习——图像分类(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()

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Easy IP + DNAT(服务器NAT转换)

第一章 Easy IP 1.1 一般家庭和企业使用的地址转换方式 直接使用出接口的地址做转换Easy IP适用于小规模居于网中的主机访问Internet的场景如:家庭、小型网吧、小型办公室中,这些地方内部主机不多,出接口可以通过拨号方式获取一个临时公网I…

做抖音小店不懂这四个“重点”!那就别怪你的店铺,做不长久!

我相信大家做抖音小店,都去抖音刷过知识点,也去浏览器学习过技巧 但在这里,我给大家泼盆冷水 方法再多!这四点不搞明白,那你的店铺出几天单,也就再也做不起来了 哪四点?请认真的看下去&#…

面试官:讲讲为什么SpringBoot的 jar 可以直接运行?

Spring Boot 是一个用于简化 Spring 应用程序开发的框架,它通过约定优于配置和大量的自动化配置,使得开发者可以更轻松地创建和部署 Spring 应用程序。一个特别引人注目的特性是 Spring Boot 应用可以打包成一个可执行的 JAR 文件,并且可以直…

新计划,不断变更!做自己,接受不美好!猪肝移植——早读(逆天打工人爬取热门微信文章解读)

时间不等人 引言Python 代码第一篇 做自己,没有很好也没关系第二篇结尾 引言 新计划: 早上一次性发几个视频不现实 所以更改一下 待后面有比较稳定的框架再优化 每天早上更新 早到8点 晚到10点 你刚刚好上班或者上课 然后偷瞄的看两眼 学习一下 补充知…

吴恩达2022机器学习专项课程C2W2:2.22 多类 softmax softmax与神经网络 softmax的代码改良 多标签分类

目录 多分类问题1.什么是多分类问题2.多分类问题案例3.二分类与多分类的区别 Softmax1. 什么是Softmax2.逻辑回归预测的计算过程3. Softmax预测的计算过程4.Softmax 回归与逻辑回归的关系5. Softmax的损失函数 softmax与神经网络1.设置Softmax层2.Softmax层的计算3.softmax激活…

Yolov5——训练目标检测模型详解(含完整源码)

项目的克隆 打开yolov5官网(GitHub - ultralytics/yolov5 at v5.0),下载yolov5的项目: 环境的安装(免额外安装CUDA和cudnn) 打开anaconda的终端,创建新的名为yolov5的环境(python选…

源码编译安装LAMP(安装apeche mysql php 论坛 网站 巨详细版)

目录 一.LAMP架构相关概述 1.各组件作用 Linux(平台) Apache(前台) MySQL(后台) PHP/Perl/Python(中间连接) 总结 二.编译安装Apache httpd服务 1.关闭防火墙,将…

DMPO -- Stressmarq

货号:SIH-324 名称:DMPO 规格:25mg、125mg 产品描述: 自由基和其他高活性氧的形成与许多疾病状态的发病机制有关。识别这些物种的能力至关重要,而自旋诱捕已经完成了这一目标。DMPO(5,5-二甲…

分析训练全球 2k+ 水文站数据,中科院团队发布 ED-DLSTM,实现无监测数据地区洪水预测

随着全球气候变化,洪水灾害正变得愈发频繁。联合国减少灾害风险办公室与比利时鲁汶大学灾害流行问题研究中心联合发布的报告指出:过去 20 年间,全球洪水灾害数量从 1,389 起上升到 3,254 起,增加了超两倍,占到灾害总数…

第一届 长城杯 总决赛wp

第一届 长城杯 总决赛 - Ahisec 第一阶段 Zip_guessinteger 第一层bkcrack攻击部分明文,注意偏移 ​ ┌──(root㉿Ten)-[~/tools/Misc/bkcrack] └─# ./bkcrack -C zip_guessinteger.zip -c breakthroughentry.txtflag.txt.zip -p 1.txt -o 30 bkcrack 1.6.1 …

一个给新手进阶的IAT加密壳

前言 这篇文章中介绍了IAT加壳与解壳的全过程,并用Ollydbg进行逆向分析,说明这个壳的鸡肋的之处,最后给出了核心源代码。 必备基础 必须很熟悉PE结构,特别是导入表的双桥结构。 IAT(Import Address Table),导入地址…

Shiro+Jwt+Redis

如何整合ShiroJwtRedis,以及为什么要这么做 我个人认为 ①为什么用shiro:“ShiroJwtRedis”模式和“单纯的shiro”模式相比,主要用的是shiro里面的登录认证和权限控制功能 ②为什么用jwt:“ShiroJwt”模式和“ShiroCookie”模式相…

怎么搭建微信留言板功能

在信息爆炸的时代,微信已经成为了我们日常生活中不可或缺的一部分。它不仅仅是一个简单的聊天工具,更是一个充满无限可能的营销平台。今天,我要向大家介绍的是如何在你的微信平台上搭建一个独具特色的留言板功能,让用户能够自由发…

【Flutter】Dialog组件PageView组件

🔥 本文由 程序喵正在路上 原创,CSDN首发! 💖 系列专栏:Flutter学习 🌠 首发时间:2024年5月27日 🦋 欢迎关注🖱点赞👍收藏🌟留言🐾 目…

需求跟踪矩阵是什么?怎么创建?一文详解

一、什么是需求跟踪矩阵 对项目经理或产品经理来说,需求清单肯定不陌生,那什么是需求跟踪矩阵呢? 需求跟踪矩阵(Requirement Track Matrix,简称RTM ),是把产品需求从其来源连接到能满足需求的…

Spring中@Component注解

Component注解 在Spring框架中,Component是一个通用的注解,用于标识一个类作为Spring容器管理的组件。当Spring扫描到被Component注解的类时,会自动创建一个该类的实例并将其纳入Spring容器中管理。 使用方式 1、基本用法: Co…

[AI OpenAI] OpenAI 安全更新

AI 首尔峰会中分享我们的实践 我们自豪地构建并发布了在能力和安全性方面都处于行业领先地位的模型。 超过一亿用户和数百万开发者依赖于我们安全团队的工作。我们将安全视为我们必须在多个时间范围内投资并取得成功的事项,从使今天的模型与我们未来预期的更具能力…

【Spring Cloud】远程调用

目录 Spring Cloud Netflix Feign简介前言Feign是什么OpenFeign组件和Spring Cloud OpenFeignOpenFeign组件Spring Cloud OpenFeign OpenFeign-微服务接口调用需求说明1. 启动Eureka Server服务2.创建两个项目,将其注册到Eureka Server3.在服务提供者中添加业务处理…

如何处理逻辑设计中的时钟域

1.什么是时钟域 2.PLL对时钟域管理 不管是否需要变频变相,在FPGA内部将外部输入时钟从专用时钟引脚扇入后先做PLL处理。如何调用pll,见另一篇文章。 约束输入时钟 creat_clock -period 10 -waveform {0 5} [get_ports {sys_clk}] 3.单bit信号跨时钟…