怎么制作自己的数据集

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

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

 

  • 43
    点赞
  • 496
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
制作自己的数据集可以按照以下步骤进行: 1. 确定数据集的目的和主题:首先,明确你想要构建数据集的目的和主题,例如自然语言处理、计算机视觉等。 2. 收集和筛选数据:根据你的主题,在互联网上搜索相关的数据源,或者创建自己的数据。确保数据的质量和准确性,同时尽量涵盖不同的情况和变化。 3. 数据清洗和预处理:对收集到的数据进行清洗和预处理,以去除无效或冗余的数据,并将数据转换为适合模型训练的格式。这可能包括文本清洗、图像裁剪、标注等操作。 4. 标注和注释数据:根据你的需求,对数据进行标注和注释,以便训练模型能够理解和学习数据的含义。例如,对文本数据可以进行分类、命名实体识别等标注,对图像数据可以进行目标检测、分割等注释。 5. 划分训练集和测试集:将数据集划分为训练集和测试集,用于模型的训练和评估。通常,训练集用于模型的训练,测试集用于评估模型的性能。 6. 数据增强(可选):如果你的数据量有限,可以使用数据增强技术生成更多的训练样本。例如,对图像进行旋转、翻转、缩放等操作,对文本进行词语替换、重排等操作。 7. 数据集的格式:根据你使用的模型和框架要求,将数据集保存为特定的格式,如CSV、JSON、TFRecord等。 8. 数据集的文档和元数据:为了方便其他人使用你的数据集,你可以提供相关的文档和元数据,包括数据集的描述、格式说明、标注规范等。 9. 数据集的分享与发布:如果你希望与他人共享你的数据集,可以将其上传到数据集共享平台或者在论文、博客等中公开分享。 请注意,在制作自己的数据集时,需要遵守相关的法律法规和道德准则,尊重数据的隐私和版权。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值