DataProcess-语义分割数据集中将原始数据划分为73比例

该文章介绍如何使用Python脚本将数据集按73比例划分为训练集和测试集,便于实验使用。
部署运行你感兴趣的模型镜像

语义分割数据集中将原始数据划分为73比例

我们下载公开数据集的时候,经常所有的图片是在一起的,如果我们需要进行实验的话还是需要按照73的比例将数据集划分为训练集和测试集,这里我准备了一个脚本,大家只需要传入分割之后保存的路径、原始的图像路径和原始的标签路径,即能随机划分为73比例的训练集和测试集,脚本如下:

import os
import random
import shutil

# 数据集路径
dataset_path = 'E:/EEEE-COM/toUser/toUser/train/split_data' # 分割之后数据集保存的路径
images_path = 'E:/EEEE-COM/toUser/toUser/train/cut_data/training_images' # 原始图像路径
labels_path = 'E:/EEEE-COM/toUser/toUser/train/cut_data/training_labels' # 原始标签路径

images_name = os.listdir(images_path)
images_num = len(images_name)
alpha = int(images_num * 0.7)
print(images_num)

random.shuffle(images_name)
random.shuffle(images_name)
train_list = images_name[0:alpha]
#valid_list = images_name[0:alpha1]
valid_list = images_name[alpha:]

# 确认分割正确
print('train list: ', len(train_list))
print('valid list: ', len(valid_list))

train_images_path = os.path.join(dataset_path, 'Training_Images')
train_labels_path = os.path.join(dataset_path, 'Training_Labels')
if os.path.exists(train_images_path) == False:
    os.mkdir(train_images_path)
if os.path.exists(train_labels_path) == False:
    os.mkdir(train_labels_path)

valid_images_path = os.path.join(dataset_path, 'Test_Images')
valid_labels_path = os.path.join(dataset_path, 'Test_Labels')
if os.path.exists(valid_images_path) == False:
    os.mkdir(valid_images_path)
if os.path.exists(valid_labels_path) == False:
    os.mkdir(valid_labels_path)

# 拷贝影像到指定目录
for image in train_list:
    shutil.copy(os.path.join(images_path, image), os.path.join(train_images_path, image))
    # shutil.copy(os.path.join(labels_path, image).replace("jpg", "png"), os.path.join(train_labels_path, image).replace("jpg", "png"))
    shutil.copy(os.path.join(labels_path, image), os.path.join(train_labels_path, image))

for image in valid_list:
    shutil.copy(os.path.join(images_path, image), os.path.join(valid_images_path, image))
    # shutil.copy(os.path.join(labels_path, image).replace("jpg", "png"), os.path.join(valid_labels_path, image).replace("jpg", "png"))
    shutil.copy(os.path.join(labels_path, image), os.path.join(valid_labels_path, image))

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肆十二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值