【ImageSets文件夹】Pascal VOC数据集格式文件夹中test.txt、train.txt、trainval.txt、val.txt文件生成
Neo很努力
原创
关注
7点赞·849人阅读
使用背景:
适用于:自制数据集训练目录文件
通常在制作Pascal VOC数据集格式文件夹数据集时,我们需要根据我们已经准备好的数据集图片以及标签文件进行数据集、验证集、测试集的文件划分,那么test.txt、train.txt、trainval.txt、val.txt这四个文件的作用就是用于网络的训练、评估、测试的目录标注。
生成如下文件:
生成代码:
import os
import random
#训练集所占比例
trainval_percent = 0.9
train_percent = 0.9
#标签文件路径
xmlfilepath = 'D:\VOC2007\Annotations'
#生成txt目录文件夹所在路径
txtsavepath = 'D:\VOC2007\ImageSets\Main'
total_xml = os.listdir(xmlfilepath)
num = len(total_xml)
list = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list, tv)
train = random.sample(trainval, tr)
ftrainval = open(txtsavepath + '/trainval.txt', 'w')
ftest = open(txtsavepath + '/test.txt', 'w')
ftrain = open(txtsavepath + '/train.txt', 'w')
fval = open(txtsavepath + '/val.txt', 'w')
for i in list:
name = total_xml[i][:-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()
通过上述代码就可以顺利的生成所需要的四个txt文件啦!:
随机读取文件夹下面的所有文件名,写入到txt
百度百科:交叉验证的基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set or test set),首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型(model),以此来做为评价分类器的性能指标。
训练数据集:训练模型;
验证数据集:验证模型的效果;如果模型的效果不好,则重新调整参数再次训练新的模型,直到找到了一组参数,使得模型针对验证数据集来说已经达到最优了;(调整超参数使用的数据集)
测试数据集:将此数据集传入由验证数据集得到的最佳模型,得到模型最终的性能;(作为衡量最终模型性能的数据集)
将原始数据集分割为训练数据集和测试数据集,再将训练数据集分割为 k 个样本子集,依次遍历这k个子集,每次把当前子集作为验证集,其余所有子集作为训练集。这样算是一次实验,而k折交叉验证只有实验k次才算完成完整的一次,也就是说交叉验证实际是把实验重复做了k次(保证k个部分的数据都分别做过验证集)训练出 k 个模型,每一个模型都在对应的验证数据集上求出其性能的指标,k 个模型的性能指标的平均值作为最终衡量该组参数对应的模型的性能指标。
一组参数训练出 k 个模型,如果最终指标不理想,重新调整参数,再次得到这 k 个模型的性能指标的均值。
借鉴 https://www.cnblogs.com/volcao/p/9291831.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)