欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

tiny-yoloV3消化之旅(二)

程序员文章站 2024-03-25 08:13:40
...

参考博客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()