1

For my Computer Vision course I use vlfeat to perform SIFT and dense SIFT over an image. I perform some data manipulation and then I wish to use libsvm to train an SVM, using the function svmtrain. My problem is that I get an error which states that libsvm is trying to access vl_svmtrain. Is there a problem in a linker somewhere or does libsvm indeed use vlfeat in the background? Or is a component of libsvm's svmtrain indeed called vl_svmtrain?

Cassie
  • 362
  • 4
  • 15
  • seems like a path problem. try `which svmtrain` in matlab and see which function is called. – lanpa Oct 20 '14 at 04:42

1 Answers1

1

libsvm is indeed a part of the vlfeat package and depends on it. If you added vlfeat to your path, you should be fine. Are other vlfeat functions working for you?

ezfn
  • 173
  • 5
  • I do. I use vl_phow, do computations and pass the result into svmtrain. But alright. So it is not an error that it sometimes gives an error and says that vl_svmtrain has a problem, instead of svmtrain? – Cassie Oct 21 '14 at 17:34
  • Look at: "\toolbox\noprefix\svmtrain.m". You can see that svmtrain calls vl_svmtrain which is a .mex file. Make sure you have the appropriate .mex for that. Something like: "\toolbox\mex\mexw64\vl_svmtrain.mexw64" which is appropriate for 64bit windows – ezfn Oct 22 '14 at 15:13
  • I have that. And my vl_feat functions work well. I want to use libsvm's svmtrain instead of the vl_feat's vl_svmtrain. Regardless of whether this is the same. Can I do that? – Cassie Oct 22 '14 at 21:44
  • OK, I see. Matlab only allows removing and adding whole folders from path. A quick and dirty solution for you: Change the file name and function name of "svmtrain" of vlefeat to something like "svmtrainVLFEAT". Now svmtrain of libsvm will be called if it is indeed in the path. – ezfn Oct 23 '14 at 22:22