Python: 自动将Faster数据集分随机为trainval、test、val、train_南石北岸生的博客-程序员秘密

技术标签: python  

2018.10.20

trainval_num与train_num为比例。

set(a).difference(set(b)) 求差集

random.shuffle()打乱数据,有返回。

math.floor向下取整。

random.sample(a,b):在a中随机采样b个元素。

os.listdir()生成文件夹下文件名称列表。

"""
https://blog.csdn.net/gusui7202/article/details/83239142
qhy。
"""
# -*- coding: utf -*-
import os
import random
import math
fo1=open('H:/qhy_database/Dataset_009/VOC2007/ImageSets/Main/test.txt','w')
fo2=open('H:/qhy_database/Dataset_009/VOC2007/ImageSets/Main/trainval.txt','w')
fo3=open('H:/qhy_database/Dataset_009/VOC2007/ImageSets/Main/train.txt','w')
fo4=open('H:/qhy_database/Dataset_009/VOC2007/ImageSets/Main/val.txt','w')
filepath='H:/qhy_database/Dataset_009/VOC2007/Annotations'
filelist=os.listdir(filepath)
file_name=[]
for w in filelist:
    file_name.append(w.replace('.xml',''))
file_num=len(file_name)
trainval_num=0.8
train_num=0.8
#trainval
trainval_list=random.sample(range(file_num),math.floor(trainval_num*file_num))
#test
test_list=(list(set(range(file_num)).difference(set(trainval_list))))
random.shuffle(test_list)
#train
train_list=random.sample(trainval_list,math.floor(train_num*len(trainval_list)))
#val
val_list=list(set(trainval_list).difference(set(train_list)))
random.shuffle(val_list)
#put in txt
for i in trainval_list:
    fo2.write(file_name[i]+'\n')
for i in test_list:
    fo1.write(file_name[i]+'\n')
for i in train_list:
    fo3.write(file_name[i]+'\n')
for i in val_list:
    fo4.write(file_name[i]+'\n')
fo1.close()
fo2.close()
fo3.close()
fo4.close()

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gusui7202/article/details/83215632

智能推荐

malloc函数_weixin_33943347的博客-程序员秘密

一、原型:extern void *malloc(unsigned int num_bytes);头文件:#include <malloc.h> 或 #include <alloc.h> (注意:alloc.h 与 malloc.h 的内容是完全一致的。)功能:分配长度为num_bytes字节的内存块说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针N...

ios编程--AVCapture编程理解(视频输入输出--摄像头)_cos_sin_tan的博客-程序员秘密

0、媒体采集的几个东西。这里所需要明白的是,在这个流程中,这里会存在几个对象:    a、AVCaptureDevice。这里代表抽象的硬件设备。    b、AVCaptureInput。这里代表输入设备(可以是它的子类),它配置抽象硬件设备的ports。    c、AVCaptureOutput。它代表输出数据,管理着输出到一个movie或者图像。    d、AV

Jmeter常用元件_jmeter常用配置元件_小刘要努力(ง •̀_•́)ง的博客-程序员秘密

如果你有一个 HTTP 请求,其返回结果里包含一个 cookie,那么 Cookie 管理器会自动将该 cookie 保存起来,而且以后所有的对该网站的请求都使用同一个 cookie。当我们创建多个HTTP 请求时,由于这些数据是必填项,所以,我们就需要不停地填写相同的数据。如果项目进行过程中出现了更改域名或者IP、更改端口号等情况,我们又需要把每一个请求中的数据都做更改,感觉很麻烦,所以需要创建一个HTTP请求默认值,以后直接更改这里就OK,不用每个请求都要改一次。(2)聚合报告:汇总报告,汇总结果。

在xp创建无线网络连接服务器,XP系统笔记本快速创建无线局域网的详细步骤_无边落木james的博客-程序员秘密

越来越多的人开始选择创建无线局域网,因为创建无线局域网不仅可以节省我们很多的经济成本,还能让我们更加自由的连接网络。最近,就有一些xp系统用户向小编咨询笔记本电脑要如何建立无线局域网。其实,创建过程非常的简单。接下来,小编就给大家介绍下WinXP系统创建无线局域网的具体方法。具体方法:1、启用无线网卡:请首先确认无线网卡的驱动程序已经正确安装,并打开无线网卡天线开关。联想笔记本大部分是FN+F5(...

编程与数学 信奥中的数学:基础篇_dllglvzhenfeng的博客-程序员秘密

NOIP初赛 CSP-J1 CSP-S1 第1轮 初赛 信奥中的数学知识(一)NOIP初赛 CSP-J1 CSP-S1 第1轮 初赛 信奥中的数学知识(一)-程序员秘密NOIP初赛 CSP-J1 CSP-S1 第1轮 初赛 信奥中的数学知识(二)NOIP初赛 CSP-J1 CSP-S1 第1轮 初赛 信奥中的数学知识(二)_dllglvzhenfeng的博客-程序员秘密NOIP初赛 CSP-J1 CSP-S1 第1轮 初赛 信奥中的数学知识(三)NOIP初赛 CSP

ETL任务调度—ETL工具的灵魂功能_etl集群作业调度主要功能_little_bee_2004的博客-程序员秘密

前有实施上线ETL(设计ETL任务),后有ETLN多任务的高效管理,对N 个ETL模块化管理即运维是整个项目投入人力、时间、精力 刚刚启动,不可控成本随之而来......上线ETL项目及用户感同身受,只有经历过才有发言权。所以ETL任务调度是ETL工具灵魂......ETL任务用于定义数据的抽取,转换及装载规则。ETL任务调度(简称ETL调度)用于控制ETL任务的启动运行(启动时间、运行周期及触发条件),实现数据的传输转换操作。ETL调度按照功能复杂度分为简单定时调度和工作流调度...

随便推点

恶意代码常用Windows函数_凌木LSJ的博客-程序员秘密

来源:恶意代码分析实战附录11、aaccept  用来监听入站网络连接,这个函数预示着程序会在一个套接字上监听入站网络连接。AdjustTokenPrivileges  用来启用或禁用特定的访问权限。执行进程注入的恶意代码会经常调用这个函数 ,来取得额外的权限。AttachThreadInput  将一个线程处理的输入附加到另一个线程上,使得第二个线程接收到输入事件。如...

jdk9新特性_Penta_D的博客-程序员秘密

1. Java 平台级模块系统Java 9 的定义功能是一套全新的模块系统。当代码库越来越大,创建复杂,盘根错节的“意大利面条式代码”的几率呈指数级的增长。这时候就得面对两个基础的问题: 很难真正地对代码进行封装, 而系统并没有对不同部分(也就是 JAR 文件)之间的依赖关系有个明确的概念。每一个公共类都可以被类路径之下任何其它的公共类所访问到, 这样就会导致无意中使用了并不想被公开访问的

全部最新版postfix+dovecot+postgresql+centos7+amavisd+clamd+spamassassin源文件安装搭建完善的邮件服务器_postfix postgresql_ahpop的博客-程序员秘密

首先系统环境:CentOS 7,2016年4月下载的最新版系统。先安装数据库:postgresql9.5.2去官网下载源码:postgresql.org安装基本的编译工具:yum install gcc make目前最新版本zlib是zlib1.2.8,安装开始;$wget http://www.zlib.net/zlib-1.2.8.tar.gz$tar -x