python通过新开线程加速硬盘读取数据的速度


新建进程列表操作

在Imagefolder里面新建列表,用来存放图片信息,使用时可直接从列表获取图片信息,而不是再从硬盘直接读取。

def r_t(self):
     while True:
		a = []#用来存放图片信息
		b = []#用来存放标签信息
		path,target = self.datalines[index]
		image = open(path,"rb").read()#将图片存为二进制数据
		sample = np.frombuffer(image, dtype=np.uint8)
		if len(self.a) == 512:
		            del self.a[0]
		            del self.b[0]
		            self.a.append(sample)
		            self.b.append(target)
		else:
		            self.a.append(sample)
		            self.b.append(target)

新建进程并打开

 self.ttt = threading.Thread(target=self.r_t, daemon=True)
 self.ttt.start()

在getitem函数里重写数据加载

代码如下(示例):

i = random.randint(0,len(self.a)-1)
sample_code = self.a[i]
target = self.b[i]
sample = cv2.imdecode(sample_code,-1)
image = Image.fromarray(np.uint8(sample))

return image,target
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值