liblinear内存开销太大

2024-09-22 16:28:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我运行了liblinear来建模一个模型文件。在

python代码如下:

y, x = svm_read_problem(vector_file)
prob = problem(y, x)
param = parameter('-s 2 -c 1')
m = train(prob, param)
save_model(model_file, m)

问题是,当vector_文件约为247MB时,运行liblinear时的总内存开销约为3.08GB。为什么这么贵?在

在我的项目中,vector_文件将有2GB那么大,我如何使用liblinear来训练问题,然后我可以得到一个模型文件?在


Tags: 文件代码模型readmodelparameterparamtrain
1条回答
网友
1楼 · 发布于 2024-09-22 16:28:31

好吧,我知道为什么会有问题。在

读问题时,liblinear的python接口使用:

prob_y = []
prob_x = []

for line in open(data_file_name):
    line = line.split(None, 1)
    # In case an instance with all zero features
    if len(line) == 1: line += ['']
    label, features = line
    xi = {}
    for e in features.split():
        ind, val = e.split(":")
        xi[int(ind)] = float(val)
    prob_y += [float(label)]
    prob_x += [xi]

return (prob_y, prob_x)

在python中,int值为28字节,float为24字节,这超出了我的想象。在

我会把这样的案例发给作者。在

相关问题 更多 >