最近训练时,数据集比较大,读取数据需要花费好长好长的时间,一直找不到原因,现在终于找了的!!!
是因为我在做测试的时候,怕图片文件路存在,加了个文件路径存在判断,但是后来忘了删除掉,,这个真的超级费时间!
背景:
- 数据只读前5000条,即只有50张图片;
- 同一批数据,读10次,计算每次读取时间;
1)这个是加了路径判断之后,记录每一次的读取时间:
for i in range(24): # 同一批数据读24次
time_t.tic()
with open(self.list_dir) as f2:
lines2 = f2.readlines()
for idx,line2 in enumerate(lines2):
if idx <50:
items2 = line2.strip().split()
filename, label = items2[0], int(items2[1])
filename = osp.join(self.root_dir, filename)
if not os.path.exists(filename):
print("====file {} not exit=====".format(filename))
samples2.append((filename, label))
t1 = time_t.toc()
print("==={}==={}".format(i,t1), len(samples2))
print("===final===",len(samples2))
2)去除图片路径判断之后,读取时间:
对比可以发现,加了路径判断真的是超级慢,能慢几十倍不止啊,实际场景中可能需要百万甚至千万的数据读取训练,真的好费时间,emmm…以后不要把这种测试代码,搞到最后啊!