深度學習——圖像分類(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.pswp.cn/diannao/13560.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/13560.shtml
英文地址,請注明出處:http://en.pswp.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閥等。 簡單來說&#…

使用 mysql-binlog-connector 監聽處理 MySQLBinlog 文件

1. 需求概述 業務開發中經常需要根據一些數據變更實現相對應的操作。例如,一些用戶注銷自己的賬戶,系統可以給用戶自動發短信確認,這時有兩種解決方案,一種是耦合到業務系統中,當用戶執行注銷操作的時候,執…

【軟件工程】【23.10】p2

關鍵字: 軟件復用技術、過程途徑、特定需求是文檔核心、數據字典條目、高內聚低耦合獨立性、數據流圖映射模塊結構圖、UML依賴、用例圖關系、RUB迭代、程序規格說明等價類劃分、有效性測試的目標、噴泉模型面向對象、軟件驗證過程、CMMI

算法提高之程序自動分析

算法提高之程序自動分析 核心思想&#xff1a;并查集 離散化 因為不是每個數都會用到 所以離散化一下**(不需要保留順序)**對于每一個值為1的等式 優先處理之后處理值為0的等式時 若ab已經連在一起 即為矛盾 #include <iostream>#include <cstring>#include &l…

【Linux】Centos7安裝RabbitMQ

【Linux】Centos7安裝RabbitMQ 下載 從 rabbitmq 的 GitHub 倉庫下載 https://github.com/rabbitmq/rabbitmq-server/releases rabbitmq 是 erlang 語言編寫的&#xff0c;需要先安裝 erlang https://github.com/rabbitmq/erlang-rpm/releases 安裝 使用rz命令上傳 erlang 和 …

Polar 網站被黑

Polar 網站被黑 開題&#xff0c;挺好看的前端&#xff0c;可惜啥也沒有。 信息搜集一波&#xff0c;掃目錄出現幾個敏感目錄&#xff0c;但是沒什么用。 繼續搜集&#xff0c;在返回包中發現了HINT F5XDAXZQNZSV6ZRRNZSF63JTF4base32解碼后是一個路由/n0_0ne_f1nd_m3/&#x…

數據倉庫實驗四:聚類分析實驗

目錄 一、實驗目的二、實驗內容和要求三、實驗步驟1、建立數據表2、建立數據源視圖3、建立挖掘結構Student.dmm4、部署項目并瀏覽結果5、挖掘模型預測 四、實驗結果分析五、實驗總結體會 一、實驗目的 通過本實驗&#xff0c;進一步理解基于劃分的、基于層次的、基于密度的聚類…

Easy-poi 和 EasyExcel 選型

目錄 共同點地址如何選 共同點 easy-poi 和 easyexcel 都是基于 apache poi 進行二次開發的&#xff0c;底層都是依賴的 apache poi使用簡單&#xff0c;都可以通過簡單的注解實現excel文件的導入導出 地址 esay poi 是一個開源的 excel,word 處理框架。鏈接 easy excel 是…

Xed編輯器開發第二期:使用Rust從0到1寫一個文本編輯器

第三篇 這部分接著處理用戶退出命令以及一些其他新功能&#xff1b; 3.1 使用CtrlQ退出 modifiers: event::KeyModifiers::CONTROL,使用CONTROL替換之前的NONE值即可&#xff1b; 3.2 重構鍵盤輸入 讓我們重構我們的代碼&#xff0c;以便我們有一個用于低級按鍵讀取的函數&…

《Rust奇幻之旅:從Java和C++開啟》第1章Hello world 2/5

講動人的故事,寫懂人的代碼 很多程序員都在自學Rust。 ??但Rust的學習曲線是真的陡,讓人有點兒怵頭。 程序員工作壓力大,能用來自學新東西的時間簡直就是鳳毛麟角。 ??目前,在豆瓣上有7本Rust入門同類書。它們雖有高分評價,但仍存在不足。 首先,就是它們介紹的Rust新…

【前端面經】BFC

BFC BFC什么是 BFC&#xff1f;元素開啟 BDC 后的特殊布局效果元素開啟 BFC 的方式 BFC 什么是 BFC&#xff1f; 官方解釋&#xff1a;A block formatting context (BFC) is a part of a visual CSS rendering of a web page. It’s the region in which the layout of block…

什么是谷歌爬蟲?

其實就是谷歌用來瀏覽網絡信息的一個自動化程序&#xff0c;他們會在你的網站爬取&#xff0c;尋找和搜集信息&#xff0c;谷歌爬蟲可以說決定著一個網站在谷歌的生死 谷歌爬蟲的作用機制就在于發現新網站以及新網頁&#xff0c;然后他會把網頁的內容帶回去&#xff0c;更新到…

PikaUnsafe upfileupload

1.client check 客戶端檢測&#xff0c;前端js檢測&#xff0c;禁用js和修改后綴名即可。 php格式不能上傳&#xff0c;我們修改后綴上傳。 蟻劍成功連接。 2.MIME type 這個就是 content-type 規定上傳類型&#xff0c;上面的方法也能成功&#xff0c;也可以修改 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真題精選

[導讀]&#xff1a;超平老師的Scratch藍橋杯真題解讀系列在推出之后&#xff0c;受到了廣大老師和家長的好評&#xff0c;非常感謝各位的認可和厚愛。作為回饋&#xff0c;超平老師計劃推出《Python藍橋杯真題解析100講》&#xff0c;這是解讀系列的第70講。 奇偶數遞增遞減&a…

vite+ts+mock+vue-router+pinia實現vue的路由權限

0.權限管理 前端的權限管理主要分為如下&#xff1a; 接口權限路由權限菜單權限按鈕權限 權限是對特定資源的訪問許可&#xff0c;所謂權限控制&#xff0c;也就是確保用戶只能訪問到被分配的資源 1.項目搭建 創建vite項目 yarn create vite配置別名 npm install path -…

4. C++入門:內聯函數、auto關鍵字、范圍for及nullptr

內聯函數 概念 以inline修飾的函數叫做內聯函數&#xff0c;編譯時C編譯器會在調用內聯函數的地方展開&#xff0c;沒有函數調用建立棧幀的開銷&#xff0c;內聯函數提升程序運行的效率 對比C的宏 C語言不足&#xff1a;宏 #define ADD(x, y) ((x)(y))int main() {int ret…