0

我想澄清一下:是否vaex.ml.sklearn允许执行核外 ML?我尝试使用文档中的示例,看看如果我在 xgboosting 过程中使用来自 hdf5 文件的数据集(评估的数据集消耗约 3 Gb 的 RAM),则 RAM 使用量约为 7-8 Gb。天真地,我假设核外不消耗这么多内存。我错了什么?

我的代码是

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 个项目的列表在哪里。

4

1 回答 1

1

您正在使用的外部模型不是由 vaex(或 vaex-ml)提供的。在 vaex-ml 中使用它们时,您只需获得一种方便的方法即可将它们添加到 vaex 计算图中、序列化、延迟评估等。模型本身未修改(我相信这在文档字符串中有所说明)。所以他们没有脱离核心。

我认为 vaex-ml 有例如一个在 vaex 中实现的 K-means 模型,因此它会超出核心(即不会使用太多内存)。

vaex-ml 中可用的预处理转换(如 StandardScaler、FrequencyEncoder 等)是使用 vaex 实现的,因此它们也将是核外的。

于 2021-03-15T10:25:27.487 回答