2017-03-24 59 views
-1

我有一个函数来预处理图像批量转发caffe作为输入,它是像下面的东西,并返回两个变量。“太多的值解压缩”

def processImageCrop(im_info, transformer, flowtransformer): 
     ..... 

     return processed_image, processed_flowimage 

     class ImageProcessorCrop(object): 
     def __init__(self, transformer, flowtransformer): 
     self.transformer = transformer 
     self.flowtransformer = flowtransformer 
     #self.flow = flow 
     def __call__(self, im_info): 
     return processImageCrop(im_info, self.transformer, self.flowtransformer) #, self.flow) 

我打电话与pool.map发送im_info参数此功能,并希望指定的两个变量如下回来了,但我得到的异常值过多解压。这两个变量都应该具有长度192.我如何分配返回值?谢谢。我不想迭代每个元素,但返回两个值并将它们分配给两个变量。

结果[“数据”],导致[“flowdata”] = pool.map(image_processor,im_info)

+0

你的问题是有点乱。请正确编辑它,并尝试提供一个可用的代码示例。 – Gabriel

+0

究竟是'processed_image'和'processed_flowimage'? – Simon

+0

两个图像值数组,每个数组有192个图像 – dusa

回答

1

pool.map通话将每个值呼唤你可调用的类,一旦结果返回一个列表在im_info。如果im_info具有两个以上的值,那么将列表解包为两个变量的分配将不起作用。

如果你真的想在名单内拆包二元组,你可能想使用zip转置数据:

result['data'], result['flowdata'] = zip(*pool.map(image_processor, im_info)) 
相关问题