Python Dask ml应逐块加载内存RAM中的所有数据

Python Dask ml应逐块加载内存RAM中的所有数据,python,scikit-learn,dask,Python,Scikit Learn,Dask,当我使用dask-ml使用partialsgdressiver进行训练时,我遇到了一个问题。假设如果使用fit方法训练模型,dask-ml使用从sklearn中继承的内部partial\u fit,但它似乎从内存中的数据集加载所有数据,并且不使用块来执行增量训练 为什么不执行增量培训 内存报告 例如: import dask.array as da import dask.dataframe as dd import dask_ml.linear_model from dask.diagnos

当我使用dask-ml使用partialsgdressiver进行训练时,我遇到了一个问题。假设如果使用fit方法训练模型,dask-ml使用从sklearn中继承的内部partial\u fit,但它似乎从内存中的数据集加载所有数据,并且不使用块来执行增量训练

为什么不执行增量培训

内存报告

例如:

import dask.array as da
import dask.dataframe as dd
import dask_ml.linear_model
from dask.diagnostics import Profiler, ResourceProfiler, CacheProfiler

# path comes from: 
# http://www.nyc.gov/html/tlc/html/about/trip_record_data.shtml.

path = '...... csv'

df = dd.read_csv(ruta, parse_dates=['tpep_dropoff_datetime', 'tpep_pickup_datetime'], blocksize=25e6)
xd=x[['trip_distance','passenger_count','PULocationID','DOLocationID']].to_delayed()
xfull = [da.from_delayed(i, i.compute().shape, i.compute().dtypes) for i in xd]
xf = da.concatenate(xfull)

yd = x['fare_amount'].to_delayed()
yfull = [da.from_delayed(i, i.compute().shape, i.compute().dtypes) for i in yd]
yf = da.concatenate(yfull)

with Profiler() as prof, ResourceProfiler(dt=1) as rprof, CacheProfiler() as cprof:
   est = dask_ml.linear_model.PartialSGDRegressor(loss='squared_loss',penalty='l1',alpha=0.1,learning_rate='constant',eta0=0.000001,max_iter=10)

   est.fit(xf,yf)
这种情况发生在csv占用35.3 GB时


如果我自己制作管道,它可以正常工作,使用小于5GB的RAM

您是否碰巧有一个可复制的示例,维护人员可以查看以重新创建相同的错误?XGBoost也有相同的问题,有什么帮助吗?