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 = "<name>2 </name>"
path = "D:/2020.10apple_data/VOCapple/VOC2012/Annotations"
flag = 0
lister = []
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.uj5u.com/qita/357223.html
標籤:其他
上一篇:【影像配準】基于matlab OpenSUFT影像配準【含Matlab原始碼 1232期】
下一篇:GitHub加速網址及使用教程
