深度学习如何将已有的图片数据集中的图片样本保存到train和test文件夹中,每个文件夹中包含名字为0到9的十个类的文件,使用一个名为mas的大文件夹来储存名为train和test文件夹,显示完整代码
时间: 2024-10-10 16:04:51 浏览: 32
深度学习项目中,通常会使用Python的库如`os`, `shutil`, 和 `numpy` 来处理这样的数据组织工作。以下是一个简单的示例,说明如何将图片数据集按照给定的结构保存:
```python
import os
import shutil
import random
# 假设你的图片数据集已经放在'data_dir'目录下,每个类别的图片分别在一个子目录里
data_dir = 'path_to_your_data_directory'
# 建立'mas'文件夹,如果不存在就创建
if not os.path.exists('mas'):
os.makedirs('mas')
# 定义类别标签
class_labels = ['0', '1', '2', ..., '9']
# 将数据随机分为训练集和测试集,这里假设70%的数据用于训练,30%用于测试
split_ratio = 0.7
num_classes = len(class_labels)
train_count = int(split_ratio * num_classes)
# 遍历类别
for label in class_labels:
# 获取当前类别的图片路径
img_dir = os.path.join(data_dir, label)
# 创建train和test文件夹,并移动图片
for split_name in ['train', 'test']:
split_dir = os.path.join('mas', f'{split_name}', label)
if not os.path.exists(split_dir):
os.makedirs(split_dir)
images = [img for img in os.listdir(img_dir) if img.endswith('.jpg')] # 假设都是.jpg格式,可根据实际情况调整
random.shuffle(images) # 打乱图片顺序
train_images = images[:train_count]
test_images = images[train_count:]
for img_path in train_images:
src_path = os.path.join(img_dir, img_path)
dst_path = os.path.join(split_dir, img_path)
shutil.copy(src_path, dst_path)
# 同理,替换train_images为test_images,就可以将图片移动到test文件夹
print("图片数据集已按照指定结构保存完成.")
阅读全文