将单个训练数据集文件拆分为:image文件和label文件(pytorch学习+蚂蚁蜜蜂数据集)

蚂蚁蜜蜂分类数据集下载链接:https://download.pytorch.org/tutorial/hymenoptera_data.zip

要实现如图操作:

  • 将ants分为ants_image和ants_label

  • 将bees分成bees_image和bees_label
    在这里插入图片描述

  • 创建ants_label和bees_label,并且以图片名作为txt文件的名称,将标签写入到txt文件中
    在这里插入图片描述
    在这里插入图片描述

  • 将标签写入到txt文件中
    在这里插入图片描述


1、创建python文件,与数据集dataset同一路径下
在这里插入图片描述
2、对divide_data.py进行编辑

import os

root_dir = "dataset/train"

# 原训练集的标签
label1 = "ants"
label2 = "bees"

# 训练文件夹下的原始文件夹ants和bees
original_dir1 = os.path.join(root_dir, "ants")
original_dir2 = os.path.join(root_dir, "bees")

# 将原始文件夹名称分别改为ants_image和bees_image
target_dir1 = os.path.join(root_dir, "ants_image")
target_dir2 = os.path.join(root_dir, "bees_image")

# 获取标签并创建的标签文件夹ants_label和bees_label
target_label_dir1 = os.path.join(root_dir, "ants_label")
target_label_dir2 = os.path.join(root_dir, "bees_label")

"""
    判断是否存在文件夹:
    1、如果存在ants和bees,就将它们改为ants_image和bees_image
    2、判断是否存在ants_label和bees_label,如果不存在就创建文件夹
"""
if os.path.exists(target_dir1):
    print(f'{target_dir1}已存在')

else:
    if os.path.exists(original_dir1):
        os.rename(original_dir1, target_dir1)
        print(f'{original_dir1}已修改为{target_dir1}')

if os.path.exists(target_dir2):
    print(f'{target_dir2}已存在')
else:
    if os.path.exists(original_dir2):
        os.rename(original_dir2, target_dir2)
        print(f'{original_dir1}已修改为{target_dir1}')

if os.path.exists(target_label_dir1):
    print(f'{target_label_dir1}已存在')
else:
    os.mkdir(target_label_dir1)
    print(f'已成功创建{target_label_dir1}')

if os.path.exists(target_label_dir2):
    print(f'{target_label_dir2}已存在')
else:
    os.mkdir(target_label_dir2)
    print(f'已成功创建{target_label_dir2}')



"""
    将图片的label保存在以图片名命名的txt文件中:
    1、获取ants_image和bees_image中的图片名
    2、以每张图片名来命名txt文件,将其保存在ants_label和bees_label中
"""
img_path1 = os.listdir(target_dir1)
img_path2 = os.listdir(target_dir2)

def write_txt(img_path, target_label_dir, label):
    for name in img_path:
        file_name = name.split('.jpg')[0]
        with open(os.path.join(target_label_dir, "{}.txt").format(file_name), 'w') as f:
            f.write(label)
    print(f'已成功写入{target_label_dir}')


write_txt(img_path1, target_label_dir1, label1)
write_txt(img_path2, target_label_dir2, label2)

3、运行py文件python divide_data.py
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值