数据集拆分data_spilt

问题描述:

我们通常获取到一个数据集都需要先将其拆分成训练集、测试集、验证集用来不同的训练和运行测试,那么如何将一个数据集拆分呢?

解决方案:

以下代码举例将flower_photos拆分成train和val两个文件夹:
在这里插入图片描述
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
在这里插入图片描述
代码为:

import os
import random
from PIL import Image
file_name = os.listdir('flower_photos')  # file_name是个列表,用来装images目录下的文件名
if not os.path.exists('flower_photos'):
    os.mkdir('flower_photos')   #  创建一个我们要存放分类好的数据文件夹
s = ['train','val']
for j in s:
    for i in file_name:
        os.makedirs('flower_photos/{0}/{1}'.format(j,i))  # 将每个分类好的数据文件夹的文件夹名创建到我们要存放的数据的文件夹中

for i in file_name:
    print(i)
    file = os.listdir('flower_photos/%s'%i)
    print(len(file))
    num_val = random.sample(file,100)  # 随机在每个类别的样本抽取100个到验证集中
#     print(num_val)
    for j in file:
        print(j)
        if j in num_val:
            img = Image.open('flower_photos/{0}/{1}'.format(i,j)) # 读取图片
            img.save('flower_photos/val/{0}/{1}'.format(i,j)) # 存放图片
        else:
            img = Image.open('flower_photos/{0}/{1}'.format(i,j))
            img.save('flower_photos/train/{0}/{1}'.format(i,j))
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值