我已经运行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_file大约是247MB时,运行liblinear时的内存总成本约为3.08GB。为什么这么贵?
在我的项目中,vector_file将大到2GB,我如何使用liblinear来训练问题,那么我可以得到一个模型文件?
答案 0 :(得分:1)
当阅读问题时,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个字节,浮动花费24个字节,这是我想象不到的。
我会将此类案件发布给作者。