將單個訓練數據集文件拆分為:image文件和label文件(pytorch學習+螞蟻蜜蜂數據集)

螞蟻蜜蜂分類數據集下載鏈接:https://download.pytorch.org/tutorial/hymenoptera_data.zip

要實現如圖操作:

  • 將ants分為ants_image和ants_label

  • 將bees分成bees_image和bees_label
    在這里插入圖片描述

  • 創建ants_label和bees_label,并且以圖片名作為txt文件的名稱,將標簽寫入到txt文件中
    在這里插入圖片描述
    在這里插入圖片描述

  • 將標簽寫入到txt文件中
    在這里插入圖片描述


1、創建python文件,與數據集dataset同一路徑下
在這里插入圖片描述
2、對divide_data.py進行編輯

import osroot_dir = "dataset/train"# 原訓練集的標簽
label1 = "ants"
label2 = "bees"# 訓練文件夾下的原始文件夾ants和bees
original_dir1 = os.path.join(root_dir, "ants")
original_dir2 = os.path.join(root_dir, "bees")# 將原始文件夾名稱分別改為ants_image和bees_image
target_dir1 = os.path.join(root_dir, "ants_image")
target_dir2 = os.path.join(root_dir, "bees_image")# 獲取標簽并創建的標簽文件夾ants_label和bees_label
target_label_dir1 = os.path.join(root_dir, "ants_label")
target_label_dir2 = os.path.join(root_dir, "bees_label")"""判斷是否存在文件夾:1、如果存在ants和bees,就將它們改為ants_image和bees_image2、判斷是否存在ants_label和bees_label,如果不存在就創建文件夾
"""
if os.path.exists(target_dir1):print(f'{target_dir1}已存在')else:if os.path.exists(original_dir1):os.rename(original_dir1, target_dir1)print(f'{original_dir1}已修改為{target_dir1}')if os.path.exists(target_dir2):print(f'{target_dir2}已存在')
else:if os.path.exists(original_dir2):os.rename(original_dir2, target_dir2)print(f'{original_dir1}已修改為{target_dir1}')if os.path.exists(target_label_dir1):print(f'{target_label_dir1}已存在')
else:os.mkdir(target_label_dir1)print(f'已成功創建{target_label_dir1}')if os.path.exists(target_label_dir2):print(f'{target_label_dir2}已存在')
else:os.mkdir(target_label_dir2)print(f'已成功創建{target_label_dir2}')"""將圖片的label保存在以圖片名命名的txt文件中:1、獲取ants_image和bees_image中的圖片名2、以每張圖片名來命名txt文件,將其保存在ants_label和bees_label中
"""
img_path1 = os.listdir(target_dir1)
img_path2 = os.listdir(target_dir2)def write_txt(img_path, target_label_dir, label):for name in img_path:file_name = name.split('.jpg')[0]with open(os.path.join(target_label_dir, "{}.txt").format(file_name), 'w') as f:f.write(label)print(f'已成功寫入{target_label_dir}')write_txt(img_path1, target_label_dir1, label1)
write_txt(img_path2, target_label_dir2, label2)

3、運行py文件python divide_data.py
在這里插入圖片描述

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

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

相關文章

Apche Kafka + Spring的消息監聽容器

目錄 一、消息的接收1.1、消息監聽器 二、消息監聽容器2.1、 實現方法2.1.1、KafkaMessageListenerContainer2.1.1.1、 基本概念2.1.1.2、如何使用 KafkaMessageListenerContainer 2.1.2、ConcurrentMessageListenerContainer 三、偏移 四、監聽器容器自動啟動 一、消息的接收 …

【機器學習】sklearn數據集的使用,數據集的獲取和劃分

「作者主頁」:士別三日wyx 「作者簡介」:CSDN top100、阿里云博客專家、華為云享專家、網絡安全領域優質創作者 「推薦專欄」:對網絡安全感興趣的小伙伴可以關注專欄《網絡安全入門到精通》 sklearn數據集 二、安裝sklearn二、獲取數據集三、…

mac錄屏工具,錄屏沒有聲音的解決辦法

mac錄屏工具,錄屏沒有聲音的解決辦法 在使用macbook錄制屏幕時,發現自帶的錄屏工具QuickTime Player沒有聲音,于是嘗試了多款錄屏工具,對其做一些經驗總結(省流:APP Store直接可以免費下載使用Omi錄屏專家…

第三課-界面介紹SD-Stable Diffusion 教程

前言 我們已經安裝好了SD,這篇文章不介紹難以理解的原理,說使用。以后再介紹原理。 我的想法是,先學會畫,然后明白原理,再去提高技術。 我失敗過,知道三天打魚兩天曬網的痛苦,和很多人一樣試了…

TiDB數據庫從入門到精通系列之六:使用 TiCDC 將 TiDB 的數據同步到 Apache Kafka

TiDB數據庫從入門到精通系列之六:使用 TiCDC 將 TiDB 的數據同步到 Apache Kafka 一、技術流程二、搭建環境三、創建Kafka changefeed四、寫入數據以產生變更日志五、配置 Flink 消費 Kafka 數據 一、技術流程 快速搭建 TiCDC 集群、Kafka 集群和 Flink 集群創建 c…

【網絡編程系列】網絡編程實戰

💝💝💝歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內容和知識,也可以暢所欲言、分享您的想法和見解。 推薦:kuan 的首頁,持續學…

使用Vue.js框架的指令和事件綁定實現一個購物車的頁面布局

使用了v-model指令來實現全選/全不選的功能,當全選框被點擊時,isAllChecked的值會被改變。使用了v-if指令來判斷購物車中是否有商品,如果有商品則渲染商品列表,否則顯示購物車為空的提示。使用了v-for指令來遍歷datalist數組&…

jvm內存溢出排查(使用idea自帶的內存泄漏分析工具)

文章目錄 1.確保生成內存溢出文件2.使用idea自帶的內存泄漏分析工具3.具體實驗一下 1.確保生成內存溢出文件 想分析堆內存溢出,一定在運行jar包時就寫上參數-XX:HeapDumpOnOutOfMemoryError,可以看我之前關于如何運行jar包的文章。若你沒有寫。可以寫上…

Keepalived入門指南:實現故障轉移和負載均衡

文章目錄 一、簡介1. Keepalived概述2. 高可用性和負載均衡的重要性 二、故障轉移1. 什么是故障轉移2. Keepalived的故障轉移原理a) VRRP協議b) 虛擬路由器ID和優先級 3. 配置Keepalived實現故障轉移a) 主備服務器的設置b) 監控網絡接口c) 虛擬IP的配置d) 備份服務器接管流程 三…

Python學習筆記_基礎篇(九)_面向對象編程

本篇內容: 1、反射2、面向對象編程3、面向對象三大特性4、類成員5、類成員修飾符6、類的特殊成員7、單例模式 反射 python中的反射功能是由以下四個內置函數提供:hasattr、getattr、setattr、delattr,改四個函數分別用于對對象內部執行:檢…

el-form自定義校驗規則

Vue 的 el-form 組件可以使用自定義校驗規則進行表單驗證。自定義校驗規則可以通過傳遞一個函數來實現,該函數接受要校驗的字段的值作為參數,并返回一個布爾值或一個 Promise 對象。 下面是一個示例,演示如何在 el-form 中使用自定義校驗規則…

若依前端npm run dev啟動時報錯

本文主要解決問題:若依前端npm run dev啟動時報錯,解決辦法。 目錄 1、第1種解決方案(親測有效) 2、第2種解決方案(親測有效) Error: error:0308010C:digital envelope routines::unsupportedat new Hash (node:internal/crypto/hash:67:19)at Object.createHash (node…

解決 adb install 錯誤INSTALL_FAILED_UPDATE_INCOMPATIBLE

最近給游戲出包,平臺要求 v1 簽名吧,AS 打包后,adb 執行安裝到手機,我用的設備是google pixel6 , android 系統 13, 提示如下: adb install -r v5_android_202308161046.apk Performing Streamed Install a…

centos 安裝.net 6 sdk

按照以下步驟在 CentOS 上安裝 .NET 6 SDK: 更新系統: sudo yum update安裝依賴項: sudo yum install -y curl libunwind libicu下載并添加 Microsoft 的軟件包存儲庫密鑰: sudo rpm -Uvh https://packages.microsoft.com/config/…

單片機第一季:零基礎13——AD和DA轉換

1,AD轉換基本概念 51 單片機系統內部運算時用的全部是數字量,即0 和1,因此對單片機系統而言,無法直接操作模擬量,必須將模擬量轉換成數字量。所謂數字量,就是用一系列0 和1 組成的二進制代碼表示某個信號大…

Linux -- 進階 Autofs自動掛載服務 實驗詳解

服務端創建共享目錄, 客戶端實現自動掛載 第一步 : 客戶端,服務端 均關閉安全軟件 [rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld [rootnode1 ~]# setenforce 0 [rootnode1 ~]# systemctl stop firewalld 第二…

在K8s上處理nginx

基本說明 創建一個名為ssl的TLS類型的Secret對象,用于存儲證書和密鑰信息。 kubectl create secret tls ssl --certserver.crt --keyserver.key配置Nginx的events塊,設置worker連接數為1024。 events {worker_connections 1024; }配置Nginx的http塊&a…

MyBaits(單獨使用,與整合無關)小白版

文章目錄 概述比較配置寫xml加載上面配置并執行加載配置的方法方式一 執行方法方式一方式二(MyBatis映射器) 寫配置文件的映射文件設置對象的別名(簡寫)獲取自動生成的主鍵 查詢結果和java的映射規則基本類型映射:簡單對象映射:嵌…

加鹽加密算法

MD5加密加鹽加密項目密碼升級 MD5加密 MD5一系列公式進行復雜數學運算;特點:(用途校驗和、計算hash值方式、加密) 1:定長;無論原始數據多長;算出的結果都是4或者8字節的版本。 2:沖…

Java多線程實戰

Java多線程實戰 java多線程(超詳細) java自定義線程池總結 Java創建線程方式 方法1,繼承Thread類 方法2,實現Runable接口 方法2-2,匿名內部類形式lambda表達式 方法3,實現Callable接口,允許…