新建进程列表操作
在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