第T10周:數據增強

  • 🍨 本文為🔗365天深度學習訓練營 中的學習記錄博客
  • 🍖 原作者:K同學啊

在這里插入圖片描述
從 tensorflow.keras 中導入 layers 模塊,包含了常用的神經網絡層,用來搭建模型結構。
檢查并列出系統中可用的物理 GPU 設備,返回一個 GPU 列表。
在這里插入圖片描述
img_height, img_width:圖片統一 resize 成 224x224。
batch_size:每個訓練 batch 中的樣本數為 32。
validation_split=0.3:把 30% 數據預留為驗證用;
subset=“training”:表示當前提取的是訓練數據;
seed=12:用于保證訓練/驗證劃分一致;
自動讀取所有圖像并打標簽,resize 到指定大小,分成批次。輸出:總共 600 張圖像,420 用于訓練。
subset=“validation”:這次提取的是驗證集;同樣參數以確保訓練驗證劃分方式一致。
輸出:驗證集為 180 張圖像。
cardinality():獲取 val_ds 中 batch 的總數(為 5);val_ds.take(n):取前 n 個 batch 作為 test_ds;val_ds.skip(n):剩余部分留作 val_ds。相當于把驗證集的 20% 再切出來當 test 集(180 張圖中約 36 張是測試集,剩余 144 張繼續作驗證集)。
每個 batch 有 32 張圖像。
獲取類別名稱,[‘cat’, ‘dog’]。
在這里插入圖片描述
自定義預處理函數:
把圖像像素值歸一化到 [0, 1](原始值是 0~255);保留原標簽。
map():將上面定義的預處理函數應用到數據集中每個元素;num_parallel_calls=AUTOTUNE:啟用多線程并行處理。
.cache():將數據緩存到內存中,加快讀取速度;
.prefetch():訓練時提前準備好下一個 batch,減少訓練等待時間。
take(1):從訓練集中取出 1 個 batch(共 32 張圖);迭代取出其中的圖像和標簽。
只顯示前 8 張圖片;plt.subplot(5, 8, i + 1):在 5x8 的網格中放置圖像;plt.imshow():顯示圖片;plt.title():顯示類別;plt.axis(“off”):隱藏坐標軸。
在這里插入圖片描述
RandomFlip(“horizontal_and_vertical”)
隨機水平 & 垂直翻轉圖像。
RandomRotation(0.2)
隨機將圖像旋轉 ±20% 的角度。
images[i] 是單張圖像的張量,形狀是 [height, width, channels];模型要求輸入帶有 batch 維度,即 [1, height, width, channels];所以expand_dims(…, 0) 在最前加了一個維度,構成一個 batch。
創建一個 3x3 網格畫布;每次對同一張圖 image 進行數據增強;用 plt.imshow() 顯示增強后的圖像;隱藏坐標軸。
使用 Keras 增強層對圖像進行隨機翻轉和旋轉,并將同一張原始圖片經過 9 次增強后的結果可視化。
在這里插入圖片描述
data_augmentation表示訓練時自動進行數據增強;Conv2D(16, 3, …):卷積層,16 個 3x3 的卷積核,激活函數 ReLU;MaxPooling2D():池化層,降低特征圖空間維度。將數據增強模塊嵌入訓練數據集(用 training=True 激活增強);map() 函數在 TensorFlow Dataset 中遍歷每個樣本 (x, y);設置 num_parallel_calls=AUTOTUNE 自動調節線程數。train_ds 數據會自動帶數據增強。
Conv2D + ReLU,三層卷積提取空間特征;MaxPooling2D,每層后面做降采樣,減小計算量;Flatten,將多維張量展平,連接到全連接層;Dense(128),全連接隱藏層,128 個神經元,ReLU 激活;Dense(len(class_names)), 輸出層,單元個數 = 類別數,未加激活函數。
使用 Adam 優化器;SparseCategoricalCrossentropy:適用于標簽是整數編碼;from_logits=True:表示最后一層未經過 softmax,loss 會自動處理;指標使用 accuracy 來評估性能。
在這里插入圖片描述
在這里插入圖片描述
用 train_ds 訓練,val_ds 驗證;總共訓練了 20 輪(epoch);
每一輪都輸出了:
accuracy:訓練集準確率;
loss:訓練損失;
val_accuracy:驗證集準確率;
val_loss:驗證損失。
初始 val_accuracy 為 59.4%,逐輪提升,最終達到 92.5%;
loss 和 val_loss 都穩定下降,沒有過擬合;從第 10 輪開始準確率就提升很高。
用分離出來的測試集 test_ds 評估最終模型性能,表示模型在從未見過的數據上仍能達到 87.5% 的分類準確率。
使用 stateless_random_contrast:給圖像加入對比度增強;使用固定種子 (seed, 0):可以控制隨機性、實現復現。
將訓練圖像 [3] 乘回 255,還原為原始像素;使用 expand_dims 添加 batch 維;打印最小/最大像素值:表明增強后圖像仍保持合理亮度范圍,沒有過度偏暗或偏亮。
在這里插入圖片描述
創建一個新的圖像窗口,大小為 8x8 英寸。
對同一張圖像 image 進行 9 次增強;每次調用 aug_img() 函數,使用tf.image.stateless_random_contrast() 添加隨機對比度。
創建一個 3x3 網格的子圖,把當前增強圖像放在第 i+1 個位置。
augmented_image 的 shape 是 [1, h, w, c],取出 [0] 表示取出圖像本身;
.numpy():將 Tensor 轉為 NumPy 數組;.astype(“uint8”):把圖像像素轉回標準的 8-bit 整數格式,然后去除坐標軸。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/81290.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/81290.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/81290.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

uniapp 支付寶小程序自定義 navbar 無效解決方案

如圖: uniapp編譯到支付寶小程序隱藏默認的導航欄失效了 解決方案: 在 pages.json 文件中找到 globalStyle 中加入以下代碼: "mp-alipay": {"transparentTitle": "always","titlePenetrate":…

vue2 el-element中el-select選中值,數據已經改變但選擇框中不顯示值,需要其他輸入框輸入值才顯示這個選擇框才會顯示剛才選中的值

項目場景&#xff1a; <el-table-column label"稅率" prop"TaxRate" width"180" align"center" show-overflow-tooltip><template slot-scope"{row, $index}"><el-form-item :prop"InquiryItemList. …

centos7 離線安裝python3 保留python2

一、事前準備&#xff1a; &#xff08;1&#xff09;查看centos具體版本 cat /etc/redhat-releaseCentOS Linux release 7.4.1708 (Core) &#xff08;2&#xff09;查看linux中當前python版本 centos7 默認安裝python2.7.5 &#xff08;3&#xff09;查看python3的依賴&#…

十三種通信接口芯片——《器件手冊--通信接口芯片》

目錄 通信接口芯片 簡述 基本功能 常見類型 應用場景 詳盡闡述 1 RS485/RS422芯片 1. RS485和RS422標準 2. 芯片功能 3. 典型芯片及特點 4. 應用場景 5. 設計注意事項 6. 選型建議 2 RS232芯片 1. RS232標準 2. 芯片功能 3. 典型芯片及特點 4. 應用場景 5. 設計注意事項 6…

2025年RAG技術發展現狀分析

2025年&#xff0c;大模型RAG&#xff08;檢索增強生成&#xff09;技術經歷了快速迭代與深度應用&#xff0c;逐漸從技術探索走向行業落地&#xff0c;同時也面臨安全性和實用性的新挑戰。以下是其發展現狀的綜合分析&#xff1a; 一、技術架構的持續演進 從單一到模塊化架構 …

case和字符串操作

使用if選擇結構 if [];then elif [];then #注意這個地方,java是else if else ; fi 使用for循環結構 使用for循環&#xff0c;語法結構如下所示&#xff1a; for 變量名 in 值1 值2 值3 #值的數量決定循環任務的次數 do命令序列 done#循環輸出1到10 for i in {1..10} #注…

Stm32 燒錄 Micropython

目錄 前言 準備工作 開始操作 問題回顧 后記 前言 去年曾經嘗試Pico制作openmv固件&#xff0c;由于知識儲備不夠最后失敗了&#xff0c;留了一個大坑&#xff0c;有了前幾天的基礎&#xff0c;慢慢補齊知識&#xff0c;最近這一周一直在學習如何編譯Stm固件并燒錄到單片機…

鹽化行業數字化轉型規劃詳細方案(124頁PPT)(文末有下載方式)

資料解讀&#xff1a;《鹽化行業數字化轉型規劃詳細解決方案》 詳細資料請看本解讀文章的最后內容。 該文檔聚焦鹽化行業數字化轉型&#xff0c;全面闡述了鹽化企業信息化建設的規劃方案&#xff0c;涵蓋戰略、架構、實施計劃、風險及效益等多個方面&#xff0c;旨在通過數字化…

2025年人工智能火爆技術總結

2025年人工智能火爆技術總結&#xff1a; 生成式人工智能 生成式人工智能可生成高質量的圖像、視頻、音頻和文本等多種內容。如昆侖萬維的SkyReels-V2能生成無限時長電影&#xff0c;其基于擴散強迫框架&#xff0c;結合多模態大語言模型和強化學習等技術&#xff0c;在運動動…

邊緣計算革命:大模型輕量化部署全棧實戰指南

當ResNet-152模型能在樹莓派4B上實現每秒27幀實時推理時&#xff0c;邊緣智能時代真正到來。本文解析從模型壓縮到硬件加速的完整技術棧&#xff0c;實測Transformer類模型在移動端的部署時延可壓縮至16ms&#xff0c;揭示ARM芯片實現INT4量化的工程秘訣與十種典型場景優化方案…

邊緣計算:數字世界的”末梢神經系統”解析-優雅草卓伊凡

邊緣計算&#xff1a;數字世界的”末梢神經系統”解析-優雅草卓伊凡 一、邊緣計算深度解析 1.1 邊緣計算的定義與架構 邊緣計算&#xff08;Edge Computing&#xff09;是一種分布式計算范式&#xff0c;它將數據處理能力從傳統的集中式云數據中心推向網絡邊緣&#xff0c;更…

面試手撕——迭代法中序遍歷二叉樹

思路 訪問順序和處理順序不一致導致迭代法難寫&#xff0c;體現在總要先遍歷根節點&#xff0c;才能訪問左右孩子&#xff0c;用null標記&#xff0c;null標記的節點表示已經訪問過了&#xff0c;下一次可以處理&#xff0c;所以在當前棧頂節點不是null的時候&#xff0c;都要…

AD系列:Windows Server 2025 安裝AD CS角色和頒發證書

什么是 Active Directory 證書服務&#xff1f; Active Directory 證書服務 (AD CS) 是一個 Windows Server 角色&#xff0c;負責頒發和管理在安全通信和身份驗證協議中使用的公鑰基礎結構 (PKI) 證書。 頒發和管理證書 數字證書可用于對電子文檔和消息進行加密和數字簽名&…

kubernetes》》k8s》》Service 、Ingress 區別

K8S>>Service 資料 K8S >>Ingress 資料 Ingress VS Service 物理層數據鏈路層網絡層傳輸層會話層表示層應用層 Ingress是一種用于暴露HTTP和HTTPS路由的資源&#xff0c;它提供了七層&#xff08;應用層&#xff09;的負載均衡功能。Ingress可以根據主機名、…

【java WEB】恢復補充說明

Server 出現javax.servlet.http.HttpServlet", according to the project’s Dynamic Web Module facet version (3.0), was not found on the Java Build Path. 右鍵項目 > Properties > Project Facets。Dynamic Web Module facet version選4.0即可 還需要在serv…

VMware 創建虛擬機+簡易安裝Ubuntu的詳細操作步驟

VMware 創建虛擬機安裝Ubuntu的詳細操作步驟 一、創建虛擬機1.1 點擊創建新的虛擬機1.2 選擇自定義創建虛擬機1.3 選擇虛擬機的硬件兼容性1.4 安裝客戶機操作系統1.5 簡易安裝信息1.6 命名虛擬機名稱1.7 處理器配置1.8 虛擬機內核選擇1.9 網絡類型1.9 選擇I/O 控制器類型1.10 選…

GCC-C語言“自定義段”

一、起因 事情的起因是這樣的,在看別人代碼時,發現了一種很有意思的寫法,因為本人主要是以應用層開發為主,所以對這種寫法還是比較少見的,所以研究了一下,就牽扯出了一些知識點,這里先賣個關子,繼續往下看。 二、經過 發現了一串這樣的代碼 static void do_mac(mcmd_…

【信息系統項目管理師-論文真題】2021上半年論文詳解(包括解題思路和寫作要點)

更多內容請見: 備考信息系統項目管理師-專欄介紹和目錄 文章目錄 試題1:論信息系統項目的合同管理1、寫作要點2、解題思路項目合同管理的過程項目合同主要的條款內容試題2:論信息系統項目的范圍管理1、寫作要點2、解題思路項目范圍管理的過程核心范圍對應的需求跟蹤矩陣項目…

python2反編譯部分

文章目錄 1、所需環境2、確認打包工具&#xff08;沒成功&#xff09;3、 解包.exe文件&#xff08;以PyInstaller為例&#xff09; - useful【***總的來說這一步對我有用】4、定位關鍵文件 - useful5、 修復.pyc文件頭&#xff08;關鍵步驟&#xff01;&#xff09;- maybe-ig…

基于STM32的中點圓算法,畫空心圓的函數

中點圓算法(Midpoint Circle Algorithm)是一種高效繪制圓的算法&#xff0c;它利用圓的對稱性和整數運算來避免浮點計算&#xff0c;非常適合嵌入式系統使用。 空心圓繪制函數實現 /*** brief 使用中點圓算法繪制空心圓* param x0: 圓心x坐標* param y0: 圓心y坐標* param…