python:将自己的数据集生成txt文件

将数据集按比例随机划分为训练集、测试集、验证集并生成txt文件

前言

在深度学习中,我们会涉及到将数据集生成txt文件的操作。将数据集生成txt文件有着许多的好处,如下:

1.数据集描述和元数据:txt文件可以包含数据集的描述信息和元数据,如数据来源、数据格式、标签信息等。这有助于记录和维护数据集的相关信息,使其他研究人员能够更容易地理解和使用数据。

2.数据预处理:将数据集保存为txt文件可以是数据预处理的一部分。在这些文件中,你可以进行数据清洗、格式转换、特征提取等操作,以便将数据准备好以供深度学习模型使用。这些预处理步骤可以更轻松地在之后的训练和评估中使用。

3.数据加载和输入:深度学习框架通常提供用于加载数据的工具,这些工具可以从txt文件中读取数据并将其转换为模型可用的格式。将数据集保存为txt文件是为了让深度学习框架能够方便地加载数据并进行训练。这种方式可以帮助确保数据的一致性和可重复性。

4.数据共享和传播:将数据集保存为txt文件使得数据更容易与其他研究人员或团队共享和传播。你可以将数据集文件上传到公共存储库,如GitHub,或通过其他方式分享给需要的人,以促进科研合作和数据共享。

5.数据备份:将数据集保存为txt文件可以作为数据的备份,以防止数据丢失或损坏。数据备份是保护研究成果的一种方式,可以在需要时随时恢复数据。

6.数据分析和可视化:txt文件中的数据可以用于进一步的数据分析和可视化。你可以使用各种工具和编程语言来加载txt文件,并进行数据分析、绘图等操作,以更深入地了解数据的特性。

代码及功能实现

不多说,直接上代码:

import random
import os

# 定义一个空的数据列表用来收集图像的对应路径
data = []

# 指定图像文件夹路径,这个路径是你数据集所在路径
root = "\image"

# 遍历图像文件夹中的文件
for filename in os.listdir(root):
    if filename.endswith((".jpg", ".jpeg", ".png")): # 判断是否为图像类型
        # 使用PIL库加载图像
        image_path = os.path.join(root, filename)

        # 将图像路径添加到数据列表
        data.append(os.path.basename(image_path)) # 返回对应路径的最后一级目录


# 按比例划分数据集
train_ratio = 0.7  # 训练集比例
test_ratio = 0.2   # 测试集比例
val_ratio = 0.1    # 验证集比例

# 计算划分的数量
total_samples = len(data)
train_samples = int(total_samples * train_ratio)
test_samples = int(total_samples * test_ratio)
val_samples = total_samples - train_samples - test_samples

# 随机打乱数据集
random.shuffle(data)

# 创建保存数据的文件夹
os.makedirs("split_data", exist_ok=True)

# 写入训练数据
# 路径为你要存入文件的路径,一般放在你项目的目录下,如果没有对应目录或文件则会创建出对应目录或文件
with open(r"\train.txt", "w",encoding='UTF-8') as train_file: # 将返回的文件对象赋值给train_file文件,以便后续调用
    for item in data[:train_samples]:
        train_file.write(item.split('.')[0] + "\n") # 分割操作,只接收图像的名字

# 写入测试数据
# 具体操作与写入训练数据类似
with open(r"\test.txt", "w",encoding='UTF-8') as test_file:
    for item in data[train_samples:train_samples + test_samples]:
        test_file.write(item.split('.')[0] + "\n")

# 写入验证数据
# 具体操作与写入训练数据类似
with open(r"\val.txt", "w",encoding='UTF-8') as val_file:
    for item in data[train_samples + test_samples:]:
        val_file.write(item.split('.')[0] + "\n")

print("数据已按比例拆分并保存为train.txt、test.txt和val.txt文件。")

运行结果

运行代码后,结果如下:
在这里插入图片描述
可以看到,已经生成了对应的txt文件。

总结

通过自己的学习和努力,通过Python代码实现了数据集按比例随机划分为训练集、测试集、验证集并生成txt文件,我认为这是一件十分有意义的事情,希望以后能够继续努力,不断地提升自己。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值