Skip to main content

load_model_from_reader

Function load_model_from_reader 

Source
pub fn load_model_from_reader(
    reader: impl BufRead,
) -> Result<SvmModel, SvmError>
Expand description

Load an SVM model from any buffered reader.

Uses LoadOptions::default. See load_model for the validation contract and non-goals. This is the reader-backed equivalent of LIBSVM’s svm_load_model.

use libsvm_rs::io::{load_model_from_reader, save_model_to_writer};
use libsvm_rs::train::svm_train;
use libsvm_rs::{KernelType, SvmNode, SvmParameterBuilder, SvmProblem, SvmType};

let problem = SvmProblem {
    labels: vec![-1.0, -1.0, 1.0, 1.0],
    instances: vec![
        vec![SvmNode { index: 1, value: -2.0 }],
        vec![SvmNode { index: 1, value: -1.0 }],
        vec![SvmNode { index: 1, value: 1.0 }],
        vec![SvmNode { index: 1, value: 2.0 }],
    ],
};
let param = SvmParameterBuilder::new()
    .svm_type(SvmType::CSvc)
    .kernel_type(KernelType::Linear)
    .build()?;
let model = svm_train(&problem, &param);

let mut bytes = Vec::new();
save_model_to_writer(&mut bytes, &model)?;
let loaded = load_model_from_reader(std::io::Cursor::new(bytes))?;
assert_eq!(loaded.sv.len(), model.sv.len());