1

背景: 1 億行と約 50 列のトレーニング セットで、dtype を最小型にキャストしました。それでも、ロードされたときのデータフレームは8〜10Gbのようです。

AWS ec2 インスタンス (1 つは 36CPU + 72RAM、もう 1 つは 16CPU + 128RAM) でトレーニングを実行します。

問題: 1; Pandas データフレームにデータをロードし、xgboost でデフォルト設定を試してみると、すぐにメモリが爆発しました 2; また、分散クライアントを有効にして を使用して Dask データフレームを試してみましdask.xgboostたが、少し長く実行されましたが、ワーカーが警告に失敗し、進行が停止しました。

それで、それが十分であることを確認するために使用する必要があるRAMのサイズを見積もる方法はありますか?

ここにいくつかのコードがあります:

import dask_ml.xgboost as dxgb
import dask.dataframe as ddf

train = pd.read_parquet('train_latest',engine='pyarrow')
train = ddf.from_pandas(train, npartitions=72)
X ,y = train[feats],train[label]
X_train,y_train,X_test,y_test = make_train_test(X,y) # customized function to divide train/test

model = dxgb.XGBClassifier(n_estimators=1000, 
                          verbosity=1, 
                          n_jobs=-1, 
                          max_depth=10, 
                          learning_rate=0.1)
model.fit(X_train,y_train)
4

0 に答える 0