tiny-yoloV3消化之旅(二)

参考博客https://blog.csdn.net/qq_27871973/article/details/85009026
消化第4步中
代码test.py
该步骤主要是将你所有标注的数据集分为训练集、测试集,一共有4个文件夹,又将测试集分为两个,目前不知为何用。

# -*- coding: utf-8 -*-
"""
Created on Sat Oct 27 12:59:20 2018

@author: Administrator
"""

import os
import random

trainval_percent = 0.1
train_percent = 0.9
xmlfilepath = 'Annotations'                                  //放xml文件夹
txtsavepath = '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)          //从测试集列表中随机选出tr个,作为训练时用

ftrainval = open('ImageSets/Main/trainval.txt', 'w')
ftest = open('ImageSets/Main/test.txt', 'w')
ftrain = open('ImageSets/Main/train.txt', 'w')   
fval = open('ImageSets/Main/val.txt', 'w')

for i in list:
    name = total_xml[i][:-4] + '\n'          //除去.xml,只要文件名
    if i in trainval:                                 //测试集,占总数的0.1
        ftrainval.write(name)
        if i in train:
            ftest.write(name)               //占测试集的0.9
        else:
            fval.write(name)              //占测试集的0.1
    else:
        ftrain.write(name)               //训练集,占总数的0.9

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

猜你喜欢

转载自blog.csdn.net/zzh_AI/article/details/89670876