资讯专栏INFORMATION COLUMN

Caught FileNotFoundError in DataLoader worker proc

Yuanf / 4758人阅读

摘要:一般是数据集有问题,比如图片和标注文件不匹配,导致找不到文件查看一下标注文件是不是有些图片没有,要删掉查看标注文件是不是有的名字不对,多个空格啥得发生异常有部分标注文件中的不存在标注文件中的图片尺寸中的宽度或者长度

Caught FileNotFoundError in DataLoader worker process 0

一般是数据集有问题,比如图片和标注文件不匹配,导致找不到文件

AssertionError Caught AssertionError in DataLoader worker process 0

查看一下标注文件是不是有些图片没有boundingbox,要删掉

KeyError Caught KeyError in DataLoader worker process 0

查看标注文件是不是有的boundingbox名字不对,多个空格啥得

发生异常: KeyError "height"

有部分标注文件中的height不存在

float division by zero

标注文件中的图片尺寸中的宽度或者长度为0了

解决方法:

对于标注文件有问题的情况,使用如下代码进行查找文件夹中所有文件是否存在某串字符

import os text = "2 "path = "D:/2020.10apple_data/VOCapple/VOC2012/Annotations"flag = 0lister = []def getfiles(path):    # 将flag设置全局变量,防止递归查找时信息提示错误。    global flag    # 到给定的路径下    os.chdir(path)    # 返回一个列表,列表中的元素为path下的文件和子文件夹    files = os.listdir()    # 依次遍历    for file_name in files:        # 返回文件或子文件夹的绝对路径        abs_path = os.path.abspath(file_name)        # 如果为文件则进行查找        if os.path.isfile(abs_path):            f = open(file_name, "r")            # 在文件中找到要查到的字符串后进行打印,并将flag置为1            if text in f.read():                flag = 1                print(text + " found in ")                print(abs_path)            # else:                # print("在{}中没查到!".format(abs_path))                # lister.append(file_name)                # print(lister)        # 如果为文件夹则重复前面的动作        if os.path.isdir(abs_path):            getfiles(abs_path)     if flag == 0:        print(text + " not found! ")        return False    return True # def delete_files():                                           #定义函数名称#     for foldName, subfolders, filenames in os.walk(path):     #用os.walk方法取得path路径下的文件夹路径,子文件夹名,所有文件名#         for filename in filenames:                         #遍历列表下的所有文件名#             for data in lister:#                 if filename == data:                       #当文件名不为“aaa.txt”时#                     os.remove(os.path.join(foldName, filename))    #删除符合条件的文件#                     print("{} deleted.".format(filename))           ##输出提示getfiles(path)# delete_files()         #调用定义的函数,注意名称与定义的函数名一致

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/123324.html

相关文章

  • 基于文件存储UFS的Pytorch训练IO优化实践

    摘要:我们在协助某客户排查一个文件存储的性能时发现,其使用的训练性能和硬件的能力有很大的差距后面内容有具体性能对比数据。但直接缓存数据在集群规模上升之后肯定是不现实的,我们初步只缓存各个训练文件的句柄信息,以降低元数据访问开销。我们在协助某AI客户排查一个UFS文件存储的性能case时发现,其使用的Pytorch训练IO性能和硬件的IO能力有很大的差距(后面内容有具体性能对比数据)。让我们感到困惑...

    Tecode 评论0 收藏0
  • 图像分类---利用pytorch搭建AlexNet网络模型训练自己的数据集(猫狗分类)

    摘要:数据准备很多例子做图像分类的时候都喜欢用手写数字作为例子来讲解图像分类,这是一个及其不负责任的教学,我个人认为做深度学习有时候是要在数据集上下功夫的,而且因为很多框架都内置了手写数字数据集,并且已经给我们处理好了,直接可以导入到神经网络中 1 数据准备         很多例子做图像分类的时...

    pingan8787 评论0 收藏0
  • /proc/pid/cmdline采坑

    摘要:如果还按照上面的正规套路解析必然无法达到满意的结果。因此,如果试图通过来分割参数,针对一些特殊的进程是不可靠的。不过由于程序显示的内容其实就是中的东西,遇到是当成空格显示的,并且末尾的连续会被忽略。有一个第三方库叫,作用就是通过修改来设置。 在Linux系统中,根据进程号得到进程的命令行参数,常规的做法是读取/proc/{PID}/cmdline,并用分割其中的字符串得到进程的args...

    weknow619 评论0 收藏0
  • Python 中 Ctrl+C 不能终止 Multiprocessing Pool 的解决方案

    摘要:解决方法有两种。代码然而这段代码只有在运行在处的时候才能用中断,即前你按有效,一旦后则完全无效建议先确认是否真的需要用到多进程,如果是多的程序建议用多线程或协程,计算特别多则用多进程。 本文理论上对multiprocessing.dummy的Pool同样有效。 python2.x中multiprocessing提供的基于函数进程池,join后陷入内核态,按下ctrl+c不能停止所有的进...

    lmxdawn 评论0 收藏0
  • Pythonic Code in Practice

    摘要:但实际工作中,想这种语法糖在有些场景中有让人爱不释手。对于该需求,如果按照上述代码执行,则需要在每一个关键字处对需要删除的文件进行处理,这样会有很多重复代码。以往在语言中,使用可以很好的完成任务,很遗憾并不支持。 此文章收集平时工作中一些Pythonic code,以供后面参考。 循环结束处理 通常以往的做法是设置一个标志位来处理或其他额外处理: def get_file_conten...

    anquan 评论0 收藏0

发表评论

0条评论

Yuanf

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<