我正在为libsvm训练一个巨大的数据文件,结果训练文件太大了。有没有办法以二进制格式保存libsvm库模型文件?
答案 0 :(得分:0)
如果您使用的是Matlab:
下载svm_savemodel.c和svm_model_matlab.c(这已经包含在libsvm中,您可以尝试使用原始的,但如果它不起作用,请尝试此链接)到您的libsvm目录。编译Mex文件(mex svm_savemodel.c
),它应该可以工作:
%save model model
fid = fopen('model.bin','w');
model = fwrite(fid, model, 'int16');
%load('model.mat');
fid = fopen('model.bin','rb');
model = fread(fid, model, 'int16');
svm_savemodel(model,'model.model');
如果您使用的是C ++: 有一个函数可以将模型保存到文件中:
int svm_save_model(const char *model_file_name, const struct svm_model *model);
更多详细信息包含在github。
中