Open aleksarias opened 5 years ago
Having the same issue. Not sure, but may be a problem inside Dask and its serializer.
@aleksarias This may work: try this before running tpot.fit(X_train, y_train)
:
from xgboost.sklearn import XGBRegressor
from distributed.protocol.serialize import register_generic
register_generic(XGBRegressor)
And then try to execute tpot.fit(X_train, y_train)
@julioasotodv Also having this same issue, but using your suggestion did not help.
I'm running in Docker using Python 2 -- If I had to bet, this would be the cause.
@masonkirchner ... I doubt it's a Python 2 issue... my logs show I was using python 3.7 and still got the issue
So maybe my issue stems from Docker? Haven't dug too much into it, but I could see maybe some weird things arising from Dask starting up workers within the container?
The error is in the dask worker.
TypeError: No dispatch for <class 'xgboost.sklearn.XGBRegressor'>
For some reason the dask_deserialize
function isn't finding the XBGRegressor class in the environment.
Here's the line where the issue is arising:
File "/opt/conda/lib/python3.6/site-packages/distributed/protocol/serialize.py", line 48, in dask_loads
loads = dask_deserialize.dispatch(typ)
I went into the same issue today and fixed it by making sure both the client and workers have the same version of xgboost installed.
I'm using the TPOT package with Dask and I'm encountering an exception while using a remote Dask cluster
Context of the issue
I've created a Dask cluster in Google Cloud Container Engine as per the documentation, http://docs.dask.org/en/latest/setup/kubernetes-helm.html
I've included as dependencies for the workers in the conf.yaml as follows:
Process to reproduce the issue
Expected result
[describe what you would expect to have resulted from this process]
Current result
After executing
tpot.fit()
The client side generates a traceback:Inspecting the cluster worker logs, you'll find:
Possible fix
No fix suggestions