data_dir = 'D:/wjd,这个路径下有八个标签,'Ag', 'Al', 'Au', 'Cu', 'W', 'V', 'Mo', 'Ta'
时间: 2023-08-08 14:08:07 浏览: 84
数据标签
好的,如果你的数据集路径下有8个标签('Ag', 'Al', 'Au', 'Cu', 'W', 'V', 'Mo', 'Ta'),你可以尝试以下代码:
```
import os
import shutil
# 原始数据集所在路径
data_dir = 'D:/wjd'
# 训练集和验证集所在路径
train_dir = 'D:/wjd/train'
val_dir = 'D:/wjd/val'
# 创建训练集和验证集文件夹
for label in os.listdir(data_dir):
os.makedirs(os.path.join(train_dir, label), exist_ok=True)
os.makedirs(os.path.join(val_dir, label), exist_ok=True)
# 遍历每个类别
for label in os.listdir(data_dir):
label_dir = os.path.join(data_dir, label)
# 获取该类别下所有图像文件
images = os.listdir(label_dir)
# 计算分割点
split_point = int(len(images) * 0.8)
# 将前80%的图像移动到训练集文件夹
for image in images[:split_point]:
src_path = os.path.join(label_dir, image)
dst_path = os.path.join(train_dir, label, image)
shutil.move(src_path, dst_path)
# 将后20%的图像移动到验证集文件夹
for image in images[split_point:]:
src_path = os.path.join(label_dir, image)
dst_path = os.path.join(val_dir, label, image)
shutil.move(src_path, dst_path)
```
这段代码首先创建每个类别的训练集和验证集文件夹。然后,遍历每个类别,获取该类别下所有图像文件,并计算分割点。接下来,将前80%的图像移动到训练集文件夹中,将后20%的图像移动到验证集文件夹中。最后,使用shutil库中的move函数将图像文件移动到目标路径。
阅读全文