41 std::unique_ptr<svm_problem>
to_svm_problem(
const torch::Tensor& X,
42 const torch::Tensor& y = torch::Tensor());
51 const torch::Tensor& y = torch::Tensor());
79 torch::Tensor
from_probabilities(
const std::vector<std::vector<double>>& probabilities);
94 void validate_tensors(
const torch::Tensor& X,
const torch::Tensor& y = torch::Tensor());
128 double sparse_threshold_;
131 std::vector<std::vector<svm_node>> svm_nodes_storage_;
132 std::vector<svm_node*> svm_x_space_;
133 std::vector<double> svm_y_space_;
136 std::vector<std::vector<feature_node>> linear_nodes_storage_;
137 std::vector<feature_node*> linear_x_space_;
138 std::vector<double> linear_y_space_;
141 std::vector<svm_node> single_svm_nodes_;
142 std::vector<feature_node> single_linear_nodes_;
149 std::vector<std::vector<svm_node>> tensor_to_svm_nodes(
const torch::Tensor& X);
156 std::vector<std::vector<feature_node>> tensor_to_linear_nodes(
const torch::Tensor& X);
163 std::vector<svm_node> sample_to_svm_nodes(
const torch::Tensor& sample);
170 std::vector<feature_node> sample_to_linear_nodes(
const torch::Tensor& sample);
177 std::vector<double> extract_labels(
const torch::Tensor& y);
184 torch::Tensor ensure_cpu_tensor(
const torch::Tensor& tensor);
192 void validate_tensor_properties(
const torch::Tensor& tensor,
int expected_dims,
const std::string& name);