前提・実現したいこと
メモリを開放したい。
発生している問題
Python
import gc import pandas as pd scores = [] for num in range(13):#通貨別にデータを作りそれを通貨別でリストにDFを格納 train = conv_data(train_list[num]) y_train = train['Target'] X_train = train.drop('Target', axis=1) del train gc.collect() #ここでも下と同様、開放してもメモリ使用率が減らない cv_score = KFold_learn(categorical_features, X_train, y_train, 'xgboost') scores.append(cv_score) #ここまでy_trainとX_trainがメモリを多く消費しているのでここでそれを開放する del y_train, X_train, cv_score gc.collect() #この後開放して確かにオブジェクトは消えたがメモリ使用率は変化しない。これを直してしっかり開放させたい。 """ import sys print("{}{: >25}{}{: >10}{}".format('|','Variable Name','|','Memory','|')) print(" ------------------------------------ ") for var_name in dir(): if not var_name.startswith("_"): print("{}{: >25}{}{: >10}{}".format('|',var_name,'|',sys.getsizeof(eval(var_name)),'|')) で確認すると確かにy_train, X_trainは消せているが、tracemallocを使って確認すると、pandasがメモリを消費しているのがわかる。 """
補足情報(FW/ツールのバージョンなど)
Jupyter notebook(kaggle notebook), Python3を利用
まだ回答がついていません
会員登録して回答してみよう