2017-03-24 4 views
-1

이미지를 전처리하여 일괄 적으로 처리하여 입력으로 전달하는 기능은 아래와 같으며 두 개의 변수를 반환합니다."압축을 풀 값이 너무 많습니다."

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) 귀하의 pool.map 호출이 값 당 한 번 호출 클래스를 호출의 결과 목록을 반환하는 것입니다

+0

귀하의 질문은 엉망의 비트입니다 :

실제로 목록 내에서 두 튜플을 풀고 싶은 경우

, 당신은 아마도 데이터를 트랜스에 zip를 사용하고 싶습니다. 코드를 올바르게 편집하고 코드의 실제 예를 제공하십시오. – Gabriel

+0

정확히'processed_image'와'processed_flowimage'는 무엇입니까? – Simon

+0

이미지 값의 두 배열은 각각 192 개의 이미지를 가지고 있습니다. – dusa

답변

1

im_info. im_info에 두 개 이상의 값이 있으면 목록을 두 개의 변수로 압축 해제하는 작업이 작동하지 않습니다.

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