/* * read the classifier from the given ioHandler */ bool svm::read(ioHandler& handler,const bool complete) { bool b=true; if (complete) { b=handler.readBegin(); } b = b && supervisedInstanceClassifier::read(handler,false); if (b) { b=b && lti::read(handler, "nClasses",nClasses); b=b && lti::read(handler, "alpha",alpha); delete trainData; dmatrix* t=new dmatrix(); b=b && lti::read(handler, "vectors",*t); trainData=t; b=b && lti::read(handler, "idMap",idMap); b=b && lti::read(handler, "rIdMap",rIdMap); b=b && lti::read(handler, "srcIds",srcIds); b=b && lti::read(handler, "bias", bias); int n; b=b && lti::read(handler, "nKernels", n); //kernels. b=b && handler.readBegin(); b=b && handler.trySymbol("kernels"); className cn; std::string kname; kernels.resize(n); // always read the complete kernel vector, so we have the setup // ready to go without the need for any subsequent // initializations for (int i=0; i<n; i++) { b=b && lti::read(handler, "name", kname); if (kname != "unknown") { kernels[i]=getParameters().createKernel(kname); b=b && kernels[i]->read(handler); } else { kernels[i]=0; } } b=b && handler.readEnd(); b=b && lti::read(handler, "offset", offset); b=b && lti::read(handler, "scale", scale); rebuildTargets(); defineOutputTemplate(); } if (complete) { b=b && handler.readEnd(); } return b; }