Можно ли создать объект SFrame внутри процесса, используя многопроцессорный модуль в Python?

 def query(vector,model,k,radius):
         ##Create a sframe
         nearest_neighbors = graphlab.SFrame({'id':[1,2,3]})
         ##Fill the sframe 
         ##code##
         return nearest_neighbors

 def scalar_wrapper(mat):
        my_dataframe=pd.DataFrame(columns=ds_original.columns)
        ll=range(mat.shape[0])
        print len(ll)
        for i in ll:
            tt=query(mat[i], model, k=10, max_search_radius=3)
            my_dataframe=my_dataframe.append(tt,ignore_index=True)
        return my_dataframe


def find_nearest(mat):
    my_dataframe=pd.DataFrame(columns=ds_original.columns)
    p = Pool(4)
    x = p.map(scalar_wrapper, (mat[i::4] for i in range(4)) )
    my_dataframe.append(x)
    return my_dataframe

В приведенном выше коде разреженная матрица mat будет передан функции find_nearest(), которая затем создаст 4 процесса, которые будут работать в разных частях mat, В scalar_wrapper, которая является многопроцессорной функцией, функцией с именем query() будет вызываться для каждого ряда mat который вернет SFrame, Теперь проблема в том, что этот код застрял. Кажется, что я не могу создать SFrame объект внутри процесса. Помогите мне найти проблему. Если проблема в SFrame, каково решение?

0 ответов

Другие вопросы по тегам