Python 处理检测算法的多个请求-Inception V2
对于一次一张图像,检测算法就像一个魔咒。但是,当我同时传递多个图像时,它就崩溃了 早些时候,我让它在CPU服务器上工作,方法是围绕多处理进行包装,并在每次检测完成时关闭它。 以下是代码:Python 处理检测算法的多个请求-Inception V2,python,deep-learning,multiprocessing,Python,Deep Learning,Multiprocessing,对于一次一张图像,检测算法就像一个魔咒。但是,当我同时传递多个图像时,它就崩溃了 早些时候,我让它在CPU服务器上工作,方法是围绕多处理进行包装,并在每次检测完成时关闭它。 以下是代码: def process_detection_pipeline(self, front, inputdata): try: manager = multiprocessing.Manager() return_dict = manager.dict(
def process_detection_pipeline(self, front, inputdata):
try:
manager = multiprocessing.Manager()
return_dict = manager.dict()
def worker_process(return_dic, front, inputdata):
userid = inputdata['userid']
if front is not None:
frontcrpimg, statusmin, statusmax = self.obj_detectperson.getUserCropImg(front)
cv2.imwrite('output/' + str(userid) + '/cropimgs/front.jpg', frontcrpimg)
return_dic['1'] = statusmin
return_dic['2'] = statusmax
return_dic['3'] = frontcrpimg
p = Process(target=worker_process, args=(return_dict, front, inputdata))
p.start()
p.join()
return return_dict.values()
except:
return False, False, None
对于基于GPU的服务器,相同的代码块不起作用
我想知道是否有更好的解决方案来解决这个问题?python多处理使用CPU而不是GPU,类似tensorflow的ML层将使您能够指定在运行程序时使用哪种设备—但是python中的并行性—将始终基于可用的底层CPU 如果您想使用GPU for python进行多进程处理,那么可以使用一个名为的lib
如果这不是您所要求的-请提供更多关于问题细节的信息我主要关心的是一次处理多个图像检测请求。我在CPU上尝试了这个解决方案,因为它在返回检测到的图像的裁剪部分后关闭了一个特定的请求。如果其他图书馆或方法,可以帮助解决这个问题将高度赞赏。非常感谢。