东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 6383|回复: 3

[课堂笔记] 一键将数据集划分为:trainval、train、val、test4个

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14418
QQ
发表于 2020-11-17 15:56:18 | 显示全部楼层 |阅读模式
# 一键将数据集划分为:trainval、train、val、test4个


import os
import random


xmlfilepath = r'./VOCdevkit/VOC2007/Annotations'
saveBasePath = r"./VOCdevkit/VOC2007/ImageSets/Main/"


# 就是分数据集:train val test trainval 4个集合
trainval_percent = 0.9
train_percent = 0.8


temp_xml = os.listdir(xmlfilepath)
total_xml = []
for xml in temp_xml:
    if xml.endswith(".xml"):
        total_xml.append(xml)


num = len(total_xml)
print("一共多少个标注文件:", num)
list = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)


trainval = random.sample(list, tv)
train = random.sample(trainval, tr)


print("train and val size", tv)
print("train size", tr)
ftrainval = open(os.path.join(saveBasePath, 'trainval.txt'), 'w')
ftest = open(os.path.join(saveBasePath, 'test.txt'), 'w')
ftrain = open(os.path.join(saveBasePath, 'train.txt'), 'w')
fval = open(os.path.join(saveBasePath, 'val.txt'), 'w')


for i in list:
    name = total_xml[:-4] + '\n'
    if i in trainval:
        # 训练验证集
        ftrainval.write(name)
        if i in train:
            # 训练集
            ftrain.write(name)
        else:
            # 验证集
            fval.write(name)
    else:
        # 测试集
        ftest.write(name)


ftrainval.close()
ftrain.close()
fval.close()
ftest.close()

让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

0

主题

102

帖子

208

积分

中级会员

Rank: 3Rank: 3

积分
208
发表于 2020-12-6 09:26:32 | 显示全部楼层

笔记写的挺好的,点个赞
回复

使用道具 举报

0

主题

102

帖子

208

积分

中级会员

Rank: 3Rank: 3

积分
208
发表于 2020-12-6 09:28:07 | 显示全部楼层

笔记写的挺好的,点个赞
回复

使用道具 举报

0

主题

98

帖子

206

积分

中级会员

Rank: 3Rank: 3

积分
206
发表于 2021-1-12 16:33:31 | 显示全部楼层
dongxihaoduoa
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-3-29 17:10 , Processed in 0.195441 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表