Я пытаюсь преобразовать свой код в параллельный и использовал joblib. Параллельно для этой цели.Я получил вышеупомянутую ошибку во время этапа расчета функции.Вот мой код.
from utils import FeatureGetter
#some code
Class model:
#initialize
def getDescriptors(image):
descriptors = self.feature_getter.get_features(image)
return descriptors
def train():
#some code
self.feature_getter = FeatureGetter()
descriptors_list = Parallel(n_jobs=-1)(delayed(self.getDescriptors)(image) for image in self.X_train)
Полный журнал ошибок
Traceback (most recent call last):
File "test_parallel.py", line 375, in <module>
bow.trainModel()
File "test_parallel.py", line 144, in trainModel
self.desc_list = Parallel(n_jobs=-1)(delayed(self.getDescriptors)(image) for image in self.X_train)
File "/home/vamsi.muthireddy/miniconda3/lib/python3.6/site-packages/joblib/parallel.py", line 779, in __call__
while self.dispatch_one_batch(iterator):
File "/home/vamsi.muthireddy/miniconda3/lib/python3.6/site-packages/joblib/parallel.py", line 620, in dispatch_one_batch
tasks = BatchedCalls(itertools.islice(iterator, batch_size))
File "/home/vamsi.muthireddy/miniconda3/lib/python3.6/site-packages/joblib/parallel.py", line 127, in __init__
self.items = list(iterator_slice)
File "test_parallel.py", line 144, in <genexpr>
self.desc_list = Parallel(n_jobs=-1)(delayed(self.getDescriptors)(image) for image in self.X_train)
File "/home/vamsi.muthireddy/miniconda3/lib/python3.6/site-packages/joblib/parallel.py", line 183, in delayed
pickle.dumps(function)
TypeError: can't pickle cv2.xfeatures2d_SIFT objects