怎么制作自己的数据集

2023-05-16

我们在做深度学习时,一般都是跑别人公开的数据集,如果想要跑自己的数据集怎么办?今天就记录一下我自己用的一种方法。

1、假设待分类一共有n类

2、新建一个文件夹,在该文件夹下新建n子个文件夹和n个对应的txt文件。将对应分类的图片放入到新建的分类文件夹中。假设           训练图片子文件夹名称分别为train_1到train_n,相对应的txt文件命名为train_1.txt到train_2.txt

3、使用如下命令:将每个子文件夹的内容(图像的名字)和标签写到txt文件中。

import os
DIRECTORY= "C:\\Users\\FT\\jupyter\\train_1"#这里是自己子文件夹的图片的位置,train_1到train_n
f = open('C:\\Users\\FT\\jupyter\\train_1.txt','w') #txt文件位置train_1到train_n
files=os.listdir(DIRECTORY)
for file in files:
		f.writelines(file+“ “+’num_class’)#num_class 是该类图像对应的分类一般用0-9
		f.write('\n')
f.close()

      写入的过后的txt文件如下:

 4、将所有的train_n.txt文件复制到一个总的txt文件命名为train.txt。这个txt文件包括了所有训练图片的名字和对应的标签.。并将        train_1到train_n文件夹中所有的图片复制到一个文件夹train中

5、使用下面的命令将该train.txt文件中图片对应名字的图片和标签取出来。

  

DIRECTORY= "C:\\Users\\FTM\\jupyter\\train"#这里是自己的所有图片的位置
f = open('C:\\Users\\FTM\\jupyter\\train.txt','r')

#产生一个0-130的随机序列。130 是自己训练图片的总张数。用于将train.txt中的数据随机排序,训练时生成随机的batch
list=[]
for i in range(0,130):
    list.append(i)
random.shuffle(list)

##########分开train.txt中的数据###############
num=[] #labels数据集
imgs=[]#data数据
line=f.readline()
while line:
    a = line.split()#将txt分成两列   
    data = a[0]   # 这是选取图像的名称,一般是xxx.jpg或其他图片格式
    imgs.append(data)  #将其添加在列表之中
    label = a[1]  # 这是选取图像的标签,一般是0-9的数字
    num.append(label)
    line = f.readline()
f.close()


##############读取图片数据######################
  batch=[] #图像数据
  labels=[]  #标签
  for j in range(len(list)):  #随机取出train文件夹中的图像
        num_1=list[j]
        file_path=DIRECTORY+"\\"+imgs[num_1]  #图像的位置
        img=cv2.imread(file_path) #将图像的信息读出来
        img=cv2.resize(img,(32,32),interpolation=cv2.INTER_CUBIC) #将图像变为指定大小
        batch.append(img)#图像数据存入batch中
        labels.append(num[num_1])#标签数据存入到labels中

 6、使用时使用如下数据变换操作:

       1)、将batch中的图像数据分批。即设置batch_size大小

       2)、将batch数据转为Tensor : batch_train=torch.Tensor(batch).permute(0,3,2,1)/255

       3)、  将labels数据做如下变换:

                label1=[int(x)for x in label] #因为前面txt中加的标签是一个str

                label1=torch.Tensor(label1).type(torch.LongTensor)

      4)、到这一步,数据就完全处理好了,可以送入神经网络训练了。

7、如果有什么待改进和其他方法,欢迎在下面留言。上面这个步骤经过我试过是可以使用的。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

怎么制作自己的数据集 的相关文章

随机推荐

  • Raspberry Pi B安装系统,无需显示屏玩转树莓派

    准备物品 xff1a 1 树莓派开发板 xff0c 我的是B型 xff08 比较老 xff0c 建议买2B 43 xff09 xff1b 2 SD卡 xff0c 用于存储 xff0c 我用的是16G的 xff08 最低多少G我没查 xff0
  • Win10安装DNW相关驱动

    我用的是开发板使用的是S5PV210的芯片 xff0c 想要使用DNW工具进行烧录程序就要先安装相关的驱动 下面我来说一下安装的具体步骤 xff0c 因为常规方法是没有办法正常安装的 1 禁用驱动签名 步骤一 xff1a 要先禁止掉系统的强
  • 从零开始编写一个上位机(串口助手)QT Creator + C++

    提示 xff1a 本博客作为学习笔记 xff0c 有错误的地方希望指正 xff0c 此文可能会比较长 xff0c 作为学习笔记的积累 xff0c 希望对来着有帮助 绪论 xff1a 笔者这里使用的是QTCreator和C 43 43 来实现
  • MPU6050对卡尔曼、一阶互补滤波、二阶互补滤波的比较

    这是总体的滤波效果 这是放大的版的 可以看出 xff0c 卡尔曼和二阶基本在重合在一起 xff0c 一阶也还好 xff0c 也没有差得太远 这里是从一放在桌子上一段时间后再进行测试的 xff0c 可以看出一阶的跟随性上面要比其他二个都要好
  • 基于UCOSIII+机智云的远程空调遥控器

    一年前 xff0c 我通过师兄的介绍知道了机智云这家创业公司 xff0c 后来 xff0c 他们的经理来我们学校开了一次宣讲会 xff0c 然后我就以个人开发者的名义申请了他们家的GoKit2代开发板 xff0c 开始对这家公司有一定的关注
  • VMware Workstation12安装Ubuntu和VMware Tools教程

    之前我通过百度经验上的过程来安装Ubuntu16 xff0c 但是每次安装的时候没有什么问题 xff0c 就是安装好了Tools xff0c 也设置好了共享文件夹 xff0c 但是在路径 xff1a mnt hgfs 下每次都找不到共享文件
  • IIC上拉电阻的选择

    上周项目评审的时候 xff0c 评审部门问了我一个问题 xff1a 为什么单片机内部有上拉电阻 xff0c 你们还要用外部的上拉电阻 xff1f 我的答复如下 xff1a 上拉电阻的选取要考虑上限值和下限值这两点 xff1a 上限值的最大限
  • 手写RTOS-创建工程

    今天开始我手写RTOS的第一步 xff0c 创建一个工程 这个工程要能够在MDK环境中能够进行编译和仿真 xff0c 不用借助任何的开发板和仿真器 xff0c 完全基于Cotex M3内核进行实验 现在我们开始创建这一个工程 xff0c 首
  • STM8S之TIM2_CH1输出不了PWM波解决办法

    最近由于项目需要 xff0c 用到STM8S103F3P6 xff0c 开发方式采用库函数方式开发 xff0c 编译环境为ST Visual Develop 43 Cosmic CxSTM8 32K 4 3 4 初始化PWM的程序如下 xf
  • 陀螺仪和加速度计互补滤波的一些推导

    1 首先 xff0c 简单介绍一下加速度计和陀螺仪的一些特性 加速度计 xff1a 静态稳定性好 xff0c 动态响应较慢 xff0c 在高频时信号不可用 xff0c 在运动时其数据相对不可靠 陀螺仪 xff1a 动态性能好 xff0c 响
  • 树莓派4B gpio readall 出现Oops - unable to determine board type... model: 17

    树莓派使用GPIO接口是基于wiringPi的 官网链接 xff1a http wiringpi com 1 xff1a 出现问题的界面 pi 64 raspberrypi gpio v gpio version 2 50 Copyrigh
  • 树莓派4B +远程SSH+远程桌面

    一 有线SSH连接树莓派 我的实验环境是笔记本电脑 43 树莓派4B 具体步骤为 xff1a 1 电脑连接上无线网络 xff0c 将电脑网线连接树莓派 2 打开如下界面 3 双击WLAN gt gt 点击属性 gt gt 再点击共享 选择以
  • 树莓派4B+wifi远程无线连接

    在树莓派无线连接前 xff0c 先设置一个静态IP 一来可以防范DHCP自动分配的ip来回变动 xff0c 导致远程SSH时常无法连接 xff1b 二来还可以提高树莓派的网络连接速率 1 一般先使用HDMI连接树莓派 xff0c 若没有额外
  • ESP32 FreeRTOS-流缓冲区(12)

    提示 xff1a 好记性不如烂笔头 本博客作为学习笔记 xff0c 有错误的地方希望指正 文章目录 前言 xff1a 一 xStreamBufferCreate xStreamBufferCreateWithCallback 二 xStre
  • windows10下安装docker,并运行ubuntu

    先上三个参考链接 xff1a 安装参考链接docker安装 xff1b docker镜像仓库 xff1a docker hub xff1b docker官方windows安装参考文档 xff1a install docker desktop
  • windows10下使用docker开启Ubuntu桌面

    先安装docker xff1a https blog csdn net Mr FengT article details 107007999 然后随便在仓库中选择一个带有桌面的Ubuntu 比如我下载的 xff1a docker pull
  • Linux下的tar压缩解压缩命令详解

    tar c 建立压缩档案 x xff1a 解压 t xff1a 查看内容 r xff1a 向压缩归档文件末尾追加文件 u xff1a 更新原压缩包中的文件 这五个是独立的命令 xff0c 压缩解压都要用到其中一个 xff0c 可以和别的命令
  • Apex安装

    直接 xff1a pip install apex 最后发现会出错 xff0c 用不了 所以使用以下方法来安装 xff1a git clone https github com NVIDIA apex cd apex python setu
  • ROS 主从通信机制要点记录

    本文主机是PC xff0c 从机是树莓派4B 1 主从机器都处于同一局域网下 xff0c 即连接同一wifi 2 分别在主从机上终端输入 ifconfig 查看当前ip 3 分别打开主从机器的 etc hosts 文件 xff0c 使用su
  • 怎么制作自己的数据集

    我们在做深度学习时 xff0c 一般都是跑别人公开的数据集 xff0c 如果想要跑自己的数据集怎么办 xff1f 今天就记录一下我自己用的一种方法 1 假设待分类一共有n类 2 新建一个文件夹 xff0c 在该文件夹下新建n子个文件夹和n个