aboutsummaryrefslogtreecommitdiff
path: root/src/GenSVMtraintest.c
diff options
context:
space:
mode:
authorGertjan van den Burg <burg@ese.eur.nl>2016-12-07 15:45:54 +0100
committerGertjan van den Burg <burg@ese.eur.nl>2016-12-07 15:45:54 +0100
commitdb54d84bc0fa031da3caa1a7eaf916c673eb4f56 (patch)
tree3d7fedeb0b2f0c1ddf5bec92994ad7602eba8149 /src/GenSVMtraintest.c
parentmake test for sparsity the same everywhere (diff)
downloadgensvm-db54d84bc0fa031da3caa1a7eaf916c673eb4f56.tar.gz
gensvm-db54d84bc0fa031da3caa1a7eaf916c673eb4f56.zip
throw warning when using sparse matrices with kernels
Diffstat (limited to 'src/GenSVMtraintest.c')
-rw-r--r--src/GenSVMtraintest.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/GenSVMtraintest.c b/src/GenSVMtraintest.c
index 40c4321..ecf455b 100644
--- a/src/GenSVMtraintest.c
+++ b/src/GenSVMtraintest.c
@@ -135,6 +135,16 @@ int main(int argc, char **argv)
model->data_file = Calloc(char, GENSVM_MAX_LINE_LENGTH);
strcpy(model->data_file, training_inputfile);
+ // check if we are sparse and want nonlinearity
+ if (traindata->Z == NULL && model->kerneltype != K_LINEAR) {
+ err("[GenSVM Warning]: Sparse matrices with nonlinear kernels "
+ "are not yet supported. Dense matrices will "
+ "be used.\n");
+ traindata->RAW = gensvm_sparse_to_dense(traindata->spZ);
+ traindata->Z = traindata->RAW;
+ gensvm_free_sparse(traindata->spZ);
+ }
+
// seed the random number generator
srand(time(NULL));
@@ -151,6 +161,16 @@ int main(int argc, char **argv)
// to an output file if specified
if (testing_inputfile != NULL) {
gensvm_read_data(testdata, testing_inputfile);
+
+ // check if we are sparse and want nonlinearity
+ if (testdata->Z == NULL && model->kerneltype != K_LINEAR) {
+ err("[GenSVM Warning]: Sparse matrices with nonlinear "
+ "kernels are not yet supported. Dense "
+ "matrices will be used.\n");
+ testdata->Z = gensvm_sparse_to_dense(testdata->spZ);
+ gensvm_free_sparse(testdata->spZ);
+ }
+
gensvm_kernel_postprocess(model, traindata, testdata);
// predict labels