使用 sys 和 pympler 的字节大小信息

问题描述 投票:0回答:1

我正在使用 pandas 库导入数据集。我将数据集分为 X 和 y 变量。我通过管道预处理 X 并拥有 X_data 变量。后来我使用 XGBoost 和 RF 模型进行训练。

我使用 sys 和 pympler 库来查看所有变量在我的工作空间中占用了多少内存空间。

第一期: 问题是我得到的 sys.getsizeof() 和 asizeof.asizeof() 的值不同。我浏览了其他论坛并了解到 sys 不适用于某些变量(例如,设置)等。但即使对于普通的熊猫系列,我也得到了巨大的价值差异。我不确定为 'y' 的值选择哪一个。

第二个问题:我使用 asizeof.asizeof() 来查找 XGBoost 和 RF 模型的大小。对于 RF 模型,我得到的拟合模型约为 261KB,但对于 XGBoost,我得到的拟合模型约为 5.2KB。我不确定任一模型的这些值是否正确。也许我错过了什么?

下面是代码和输出。

对于第 1 期

从 pympler 导入 asizeof 导入系统

未显示预处理和模型训练的代码

类型(y) 输出:pandas.core.series.Series

asizeof.asizeof(y) 输出:6706024

sys.getsizeof(y) 输出:121104


类型(X_data) 输出:scipy.sparse._csr.csr_matrix

asizeof.asizeof(X_data) 输出:2301736

sys.getsizeof(X_data) 输出:56 # 我丢弃了这个值,因为这个字节大小是用于 python 对象作为我的研究


memory size sys
1个回答
0
投票

我通过使用pickle解决了这个问题。

import pickle
import sys

p = pickle.dumps(xgb)
print(sys.getsizeof(p))
© www.soinside.com 2019 - 2024. All rights reserved.