# 将数据集随机划分为训练集和验证集,测试集

这篇具有很好参考价值的文章主要介绍了# 将数据集随机划分为训练集和验证集,测试集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

# 将数据集随机划分为训练集和验证集,测试集
import os
import random
import shutil

from tqdm import tqdm

image_path = r'F:\Dissertation\3.Sub-Topic-C\Datasets\0.Ship Detection from Aerial Images_datasets\images\\'  # 源图片文件夹路径
mask_path = r'F:\Dissertation\3.Sub-Topic-C\Datasets\0.Ship Detection from Aerial Images_datasets\annotations\\'  # 标签文件夹路径

train_images = r'F:\Dissertation\3.Sub-Topic-C\Datasets\0.Ship Detection from Aerial Images_datasets\VOC\train\images'  # 划分后训练集图片的保存路径
train_labels = r'F:\Dissertation\3.Sub-Topic-C\Datasets\0.Ship Detection from Aerial Images_datasets\VOC\train\labels'
val_images = r'F:\Dissertation\3.Sub-Topic-C\Datasets\0.Ship Detection from Aerial Images_datasets\VOC\val\images'
val_labels = r'F:\Dissertation\3.Sub-Topic-C\Datasets\0.Ship Detection from Aerial Images_datasets\VOC\val\labels'
# test_images = r'E:\DCI(first)_3\DCI_Split2\test\images'
# test_labels = r'E:\DCI(first)_3\DCI_Split2\test\labels'

if not os.path.exists(train_images):
    os.makedirs(train_images)
if not os.path.exists(train_labels):
    os.makedirs(train_labels)
if not os.path.exists(val_images):
    os.makedirs(val_images)
if not os.path.exists(val_labels):
    os.makedirs(val_labels)
# if not os.path.exists(test_images):
#     os.makedirs(test_images)
# if not os.path.exists(test_labels):
#     os.makedirs(test_labels)
train_rate = 0.8  # 自定义抽取图片的比例,比方说100张抽10张,那就是0.1
val_rate = 0.2
#test_rate = 0.15
# 求训练集
pathDir = os.listdir(image_path)  # 取图片的原始路径
print('数据集总共有图片:', len(pathDir))
print(
    '划分比例如下:训练集:{},验证集:{}'.format(int(len(pathDir) * train_rate), int(len(pathDir) * val_rate),
                                         )) #,测试集:{}   int(len(pathDir) * test_rate)
picknumber = int(len(pathDir) * train_rate)  # 按照rate比例从文件夹中取一定数量图片
train_sample = random.sample(pathDir, picknumber)  # 随机选取picknumber数量的样本图片
print('训练集的大小为:', len(train_sample))

# 复制为训练集
for name in tqdm(train_sample):
    shutil.copy(image_path + name, train_images + "\\" + name)
    shutil.copy(mask_path + name[:-3] + "xml", train_labels + "\\" + name[:-3] + "xml")

# 求出原数据集不含训练集
all_images = os.listdir(image_path)
remaining_image = []
for file in all_images:
    if file not in train_sample:
        remaining_image.append(file)
# 求验证集
picknumber2 = int(len(remaining_image) * val_rate / (val_rate ))  # 按照rate比例从文件夹中取一定数量图片 + test_rate
val_sample = random.sample(remaining_image, picknumber2)  # 随机选取picknumber数量的样本图片
print('验证集的大小为:', len(val_sample))
# 复制为验证集
for file in tqdm(val_sample):
    shutil.copy(image_path + file, val_images + "\\" + file)
    shutil.copy(mask_path + file[:-3] + "xml", val_labels + "\\" + file[:-3] + "xml")

# test_sample = []
# for file in remaining_image:
#     if file not in val_sample:
#         test_sample.append(file)
# print('测试集的大小为:', len(test_sample))
# # 复制为测试集
# for file in tqdm(test_sample):
#     shutil.copy(image_path + file, test_images + "\\" + file)
#     shutil.copy(mask_path + file, test_labels + "\\" + file)

文章来源地址https://www.toymoban.com/news/detail-495004.html

到了这里,关于# 将数据集随机划分为训练集和验证集,测试集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 训练集和测试集的标准化中的坑!!!

    问题:数据标准化,应该在训练集和测试集划分前还是后? 答:数据标准化,应该在训练集和测试集划分 后 ,分别对训练集和测试集进行数据标准化处理。不应该是数据标准化后,再进行划分。虽然从模型测试的结果看,可能出现的差距不大。 解释:当你手头已经有一份训

    2023年04月08日
    浏览(32)
  • ChatGPT技术原理 第九章:数据集和训练技巧

    目录 9.1 对话数据集 9.2 数据预处理 9.3 预训练技巧 9.4 微调技巧

    2024年02月02日
    浏览(44)
  • 机器学习数据集----训练集、测试集以及验证集

    1、训练集 用来构建模型,通过训练拟合一些参数 建立分类器 。 2、验证集 用于确定网络结构以及调整模型的超参数。 使用验证集的目的就是为了快速 调参 (如网络层数、网络节点数、迭代次数等等),从而获得当前最优模型。 验证集是在训练集中划分出的一部分。 验证

    2024年02月01日
    浏览(41)
  • Pytorch实现动物识别(含动物数据集和训练代码)

    目录 动物数据集+动物分类识别训练代码(Pytorch) 1. 前言 2. Animals-Dataset动物数据集说明 (1)Animals90动物数据集 (2)Animals10动物数据集 (3)自定义数据集 3. 动物分类识别模型训练 (1)项目安装 (2)准备Train和Test数据 (3)配置文件: config.yaml (4)开始训练 (5)可视化训

    2024年02月02日
    浏览(144)
  • 等保等级具体分为几级?如何划分?

    众所周知等保全称信息安全等级保护,是对一个企业信息和信息载体安全核验的等级划分的。等保等级由低到高分为五级,主要依据系统受破坏后危害的范围和严重程度,但很多用户对等保不太了解,不知道自己要做几级等保,更不懂等保等级如何划分,接下来我们通过这篇文

    2024年02月12日
    浏览(41)
  • 图像分类 | 基于 Labelme 数据集和 VGG16 预训练模型实现迁移学习

    Hi,大家好,我是源于花海。 本文主要使用数据标注工具 Labelme   对自行车(bike)和摩托车(motorcycle)这两种训练样本进行标注,使用预训练模型  VGG16  作为卷积基,并在其之上添加了全连接层。基于标注样本的信息和预训练模型的特征提取能力,训练自己构建的 图像分

    2024年01月20日
    浏览(47)
  • 神经网络中数据集的三种类别的区分:训练集、验证集、测试集

     在神经网络中,数据集通常被划分为三个主要类别:训练集(Training Set)、验证集(Validation Set)、和测试集(Test Set)。这个划分的目的是为了评估和优化模型的性能。 训练集(Training Set): 作用: 用于训练神经网络的参数和权重。 特点: 包含大量的样本,模型通过训

    2024年02月02日
    浏览(38)
  • 跌倒检测和识别2:YOLOv5实现跌倒检测(含跌倒检测数据集和训练代码)

    目录 跌倒检测和识别2:YOLOv5实现跌倒检测(含跌倒检测数据集和训练代码) 1. 前言 2. 跌倒检测数据集说明 (1)跌倒检测数据集 (2)自定义数据集 3. 基于YOLOv5的跌倒检测模型训练 (1)YOLOv5安装  (2)准备Train和Test数据 (3)配置数据文件 (4)配置模型文件 (5)重新聚类

    2023年04月27日
    浏览(42)
  • 基于opencv与机器学习的摄像头实时识别数字!附带完整的代码、数据集和训练模型!!

    使用摄像头实时识别数字算是目标检测任务,总体上分为两步,第一步是检测到数字卡片的位置,第二步是对检测到的数字卡片进行分类以确定其是哪个数字。在第一步中主要涉及opencv的相关功能,第二步则使用机器学习的方式进行分类。 重点操作是使用轮廓查找函数,获取

    2024年02月15日
    浏览(70)
  • 如何看待第三代神经网络SNN?详解脉冲神经网络的架构原理、数据集和训练方法

    作者丨科技猛兽 编辑丨极市平台 本文首发于极市平台公众号,转载请获得授权并标明出处。 1 脉冲神经网络简介 2 脉冲神经网络原理 3 脉冲神经网络数据集 4 脉冲神经网络训练方法 5 脉冲神经网络评价指标 脉冲神经网络 (SNN) 属于 第三代神经网络模型 ,实现了更高级的生物

    2024年02月08日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包