【数据处理脚本】RA-CNN模型数据集处理及训练出现的报错解决

文件合并处理的脚本编写
在我的虹膜数据集中,每个人的数据对应一个编号的文件夹(如001),文件夹下分左右眼文件夹(L和R),结构如下:

  • 001
    • L
    • R
  • 002
    • L
    • R

在本次实验中,没有对左右眼进行区分,所以我需要将L和R文件夹下的所有图片都揉在001文件夹中,编写脚本如下:

# merge_files.py

import os
import shutil

start_file_id = '000'  # 要处理的起始文件夹编号
file_num = 1000  # 要处理的连续文件夹数量

for idx in range(file_num):
    source_path = os.path.abspath('D:\Computer\Machine_Learning\IrisRecognition\中科大CASIA-IrisV4数据集\CASIA-IrisV4(JPG)\CASIA-Iris-Thousand/' + start_file_id)
    target_path = os.path.abspath('D:\Computer\Machine_Learning\IrisRecognition\中科大CASIA-IrisV4数据集\CASIA-IrisV4(JPG)\CASIA-Thousand/' + start_file_id)

    if not os.path.exists(target_path):
        os.makedirs(target_path)

    print('Start to copy...', start_file_id)
    if os.path.exists(source_path):
        # root所指的是当前正在遍历的这个文件夹的本身的地址
        # dirs是一个list, 内容是该文件夹中所有的目录的名字(不包括子目录)
        # files同样是list, 内容是该文件夹中所有的文件(不包括子目录)
        for root, dirs, files in os.walk(source_path):
            for file in files:
                src_file = os.path.join(root, file)
                shutil.copy(src_file, target_path)
                print(src_file)

    start_file_id = str(int(start_file_id) + 1).zfill(3)

print('Copy done!')

执行以上脚本,便将所有子文件夹下的内容合并在了同一个最大文件夹中。

RA-CNN报错问题
有了数据集后,再通过自己编写的4个脚本文件生成4个训练和测试所需要的4个txt文件,修改代码中的路径和参数等,开始训练…可是,没过多少个step就出现如下报错:
在这里插入图片描述
经过几个小时繁琐的检查,最终把问题定位在了训练的数据集上,反复排除后,在307号文件夹中发现了一个未知文件Thumbs.db
在这里插入图片描述
OK,问题找到了,就是这个db文件导致我的模型出现NoneType的报错!

编写脚本检查哪些文件夹下有这个多余文件

# CheckFiles.py

import os

path = "D:\Computer\Machine_Learning\IrisRecognition\中科大CASIA-IrisV4数据集\CASIA-IrisV4(JPG)\\thousand"

dirs = os.listdir(path)
count = 0
for i, j in enumerate(dirs):
    dirs = os.path.join(path, j)
    images = os.listdir(dirs)
    for x in images:
        # print(x)
        if x == 'Thumbs.db':
            print('Postion of Thumbs.db file:', dirs[-3:])
            count += 1

print('Totol num of Thumbs.db file:', count)

最终成功找出多余文件所在位置以及总数量。
在这里插入图片描述
删除完之后,再次检查文件。
在这里插入图片描述
Bingo,可以顺利进行RA-CNN的训练了√

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.zwX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值