Nicht Gurke Funktion

So versuche ich, die Geschwindigkeit meiner Berechnung die Zeit, indem Sie ein wenig bit-multiprocessing

Ich versuche, den pool zu benutzen Arbeitnehmer.

Oben in meinem code habe ich

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

Dann, wenn die Zeit kommt, die ich verwenden

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

Bekomme ich die folgende Fehlermeldung

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 und Chan2 arrays sind mein signal, und ich versuche, heraus zu filtern Rauschen heraus.
Ich bin neu zu Rendern, so dass ich entschuldige mich, wenn dies ist ein dummer Fehler

möglich, Duplikat der Can nicht Gurke <geben Sie 'instancemethod'> bei der Verwendung von python-multiprocessing-Pool.map()
Ich glaube nicht, verwenden Sie benutzerdefinierte Klassen, und das ist, wo sein Problem ist (zumindest soweit ich das sagen kann)
Das Problem ist, dass nicht alle Objekte sind picklable. Die Objekte sind nicht picklable? Lesen Sie einfach docs.
können Sie mehr darüber, wie Sie definiert sind Chan1/Chan2? was sind Sie?
Chan1 und Chan2 ist einfach ein array von zahlen. Sie kommen aus einer Reihe von binären Daten-Dateien, die dann getrimmt werden, die eine Potenz von 2 ist.

InformationsquelleAutor Casey Daniel | 2014-03-03

Schreibe einen Kommentar