我想澄清一下:vaex.ml.sklearn允许执行核心外的ML吗?我试着使用文档中的示例,并看到如果我在xg升压过程中使用hdf5文件中的dataset (评估数据集消耗3GB内存),那么RAM的使用率大约是7-8GB。天真地,我认为内核外不会消耗那么多内存。我做错什么了?
我的代码是
import vaex.ml.sklearn
xgb_model = xgboost.sklearn.XGBRegressor(max_depth=4,
learning_rate=0.1,
n_estimators=100,
subsample=0.75,
random_state=42,
)
vaex_xgb_model = vaex.ml.sklearn.Predictor(features=features,
target='target',
model=xgb_model,
prediction_name='prediction_xgb')
vaex_xgb_model.fit(df_train)
df_train = vaex_xgb_model.transform(df_train)其中features是~40项的列表。
发布于 2021-03-15 10:25:27
你所使用的外部模型不是由金库(或vaex-ml)提供的,而是“按原样”来的。当在vaex-ml中使用它们时,您只需使用一种方便的方法将它们添加到vaex计算图、序列化、惰性评估等中。模型本身是未修改的(我相信这是在docstring中描述的)。所以他们并不是没有核心。
例如,我认为vaex-ml有一个在vaex中实现的K-均值模型,这样一个模型就没有核心(即不会占用太多内存)。
StandardScaler、FrequencyEncoder等可在vaex-ml中使用的预处理转换是使用vaex实现的,因此这些转换也将是核外的。
https://stackoverflow.com/questions/65427463
复制相似问题