dask.ml.xgboost поднимает UnboundLocalError: локальная переменная 'result', на которую ссылается перед присваиванием - PullRequest
0 голосов
/ 29 января 2020

Я использую dask_xgboost и не понимаю ошибки, указанной в теме. Я успешно обучил модель и сохранил ее с помощью joblib.dump.

Позже, на этапе прогнозирования, я использую его так:

import dask
import dask.dataframe as dd
import dask.distributed as ddst
from dask_jobqueue import PBSCluster
from dask.distributed import Client
import dask_xgboost as dxgb
import geopandas as gp
from sklearn.externals import joblib


def predict(zs_files: List[str], model_name: str, client) -> None:
    delayed_dfs = [dask.delayed(gp.read_file)(zsf) for zsf in zs_files]
    model = joblib.load(model_name)
    delayed_predictions = [
        dxgb.predict(client, model, df).to_parquet(f"{fn}_predicted.parquet")
        for df, fn in zip(delayed_dfs, zs_files)
    ]
    delayed_predictions.compute()

Я читаю набор Geo JSON файлы с гео pandas и затем просто кормите модель ими. Я использую клиента в кластере PBS.

Буду признателен за любую помощь.

Спасибо.

1 Ответ

1 голос
/ 29 января 2020

Я нашел проблему. Мне не хватало вызова from_delayed для преобразования кадра данных geo pandas в dask:

dxgb.predict(client, model, dd.from_delayed(df))
...