制作自己的数据集tfrecord格式

本文介绍了如何使用TensorFlow创建多分类数据集的tfrecord格式,包括解决将多类标签转换为整型的问题。作者分享了遇到的挑战及解决方案,适合机器学习新手参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近接触TensorFlow,需要训练自己的数据集,看到很多博客资料,了解到TensorFlow中自带的tfrecord文件,但是自己具体实现起来发现自己的情况与资料的一些不太一样,所以把自己遇到的问题归纳整理出来。新手一枚,水平有限,有许多问题的解决可能仅限于解决,代码并有优化,有些思路可能走了弯路,希望能跟大家交流。

1.问题1:对于多分类情况,怎么确定标签?

(1)多分类:大多资料中给出的是针对两种分类的情况,采用的是直接用class={class1 , class2}这种格式,但是对于很多类的话,依次写出类别有点麻烦,那么可以采用先定义一个列表classes = []来存储目录中所有的分类,比如对于字符识别,那么classes = {1,2,3,4...,A,B,C},然后用for index, name in enumerate(classes)将对应文件夹的名字与整数一一对应起来。

其中enumerate是python中的一个函数,目的会将index和classes中的name对应起来,比如classes = {1,2,3,A,...}那么index = {1, 2, 3, 4,..}并且与classes中的1,2,3 ,A这些对应。

为什么要这样做?因为在存入tfrecord的时候,标签一般用的是整型,当目录文件中包含A,B,或者字符串的时候要将其变为整型,我尝试过读入tfrecord的时候用tobyte格式,也就是直接用字符串的形式读入,但是会报错,也可能是我知识水平不够,没有找到正确的方法。

classes = []
    for class1 in os.listdir(cwd):
        classes.append(class1)
    for index, name in enumerate(classes):
        class_path = cwd + name + '\\'
        for img_name in os.listdir(class_path):
            img_path = class_path + img_name  # 每一个图片的地址

2.问题二:如何在读入的时候分数据集和测试集(其中测试集占50%)
(1)我采用的是在逐层访问文件夹的时候用两个字典(一对多)存入图片的标签和对应图片地址。
    for class1 in os.listdir(cwd):
        classes.append(class1)
    for index, name in enumerate(classes):
        class_path = cwd + name +
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值