Ne peut pas pickle Fonction

Donc je vais essayer d'augmenter la vitesse de mon temps de calcul, en faisant un peu de multitraitement

Je suis en train d'utiliser la piscine travailleurs.

En haut de mon code j'ai

import Singal as s
import multiprocessing as mp
def wrapper(Channel):
    Noise_Frequincies = []
    for i in range(1,125):
        Noise_Frequincies.append(60.0*float(i))
    Noise_Frequincies.append(180.0)
    filter1 = s.Noise_Reduction(Sample_Rate,Noise_Frequincies,Channel)
    return filter1

Puis, quand vient le temps-je utiliser

Both_Channels = [Chan1, Chan2]
results = mp.Pool(2).map(wrapper,Both_Channels)
filter1 = results[0]
filter2 = results[1]

J'obtiens l'erreur suivante

Exception in thread Thread-2:
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 808, in __bootstrap_inner
self.run()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 761, in run
self.__target(*self.__args, **self.__kwargs)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/pool.py", line 342, in _handle_tasks
put(task)
PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed

Chan1 et Chan2 sont des tableaux de mon signal, et je suis en train de filtrer un peu de bruit à la sortie de chaque.
Je suis nouveau sur le multitraitement donc je m'excuse si c'est une stupide erreur

double possible de Can pas pickle <type 'instancemethod" > lors de l'utilisation de python multitraitement de la Piscine.map()
Je n'ai pas l'utilisation de classes personnalisées, et c'est là son problème est (au moins autant que je peux dire)
Le problème est que pas tous les objets sont picklable. Les objets qui ne sont pas picklable? Viens de lire la doc.
pouvez-vous en dire plus sur la façon dont sont définis Chan1/Chan2? quels sont-ils?
Chan1 et Chan2 est tout simplement un tableau de nombres. Ils viennent d'une série de fichiers de données binaires, puis découpé pour être une puissance de 2.

OriginalL'auteur Casey Daniel | 2014-03-03