Я пытаюсь запустить задание прогнозирования машинного обучения параллельно на огромном фрейме данных pandas
. Похоже, что ray
— хороший пакет для многопроцессорной обработки в Python. Это код:
model_path = './models/lr.pkl'
df = pd.read_csv('./data/input.csv')
dfs = np.array_split(df, 4)
features = ['item_text', 'description', 'amount']
ray.init()
@ray.remote
def predict(model_path, df, features):
model = joblib.load(model_path)
pred_df = model.predict(df[features])
return pred_df
result_ids = []
for i in range(4):
result_ids.append(predict.remote(model_path, dfs[i], features))
results = ray.get(result_ids)
Когда я запустил его, я получил следующую ошибку:
PicklingError: args[0] from __newobj__ args has the wrong class
Я так понимаю, args[0]
относится к model_path
. Это просто строка, почему неправильный класс? Что мне не хватает?