MCPcopy Create free account
hub / github.com/Xtra-Computing/thundersvm / check_parameter

Method check_parameter

src/thundersvm/cmdparser.cpp:299–351  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

297}
298
299bool CMDParser::check_parameter() {
300 SvmParam::SVM_TYPE svm_type = param_cmd.svm_type;
301 if (svm_type < SvmParam::C_SVC || svm_type > SvmParam::NU_SVR) {
302 LOG(ERROR) << "unknown svm type";
303 return false;
304 }
305 SvmParam::KERNEL_TYPE kernel_type = param_cmd.kernel_type;
306 if (kernel_type < SvmParam::LINEAR || kernel_type > SvmParam::PRECOMPUTED) {
307 LOG(ERROR) << "unknown kernel type";
308 return false;
309 }
310 if (param_cmd.gamma < 0) {
311 LOG(ERROR) << "gamma < 0";
312 return false;
313 }
314 if (param_cmd.degree < 0) {
315 LOG(ERROR) << "degree of polynomial kernel < 0";
316 return false;
317 }
318 if (param_cmd.epsilon <= 0) {
319 LOG(ERROR) << "epsilon <= 0";
320 return false;
321 }
322 if (svm_type == SvmParam::C_SVC || svm_type == SvmParam::EPSILON_SVR || svm_type == SvmParam::NU_SVR)
323 if (param_cmd.C <= 0) {
324 LOG(ERROR) << "C <= 0";
325 return false;
326 }
327 if (svm_type == SvmParam::NU_SVC || svm_type == SvmParam::ONE_CLASS || svm_type == SvmParam::NU_SVR)
328 if (param_cmd.nu <= 0 || param_cmd.nu > 1) {
329 LOG(ERROR) << "nu <= 0 or nu > 1";
330 return false;
331 }
332 if (svm_type == SvmParam::EPSILON_SVR)
333 if (param_cmd.p < 0) {
334 LOG(ERROR) << "p < 0";
335 return false;
336 }
337 if (param_cmd.max_mem_size <= 0) {
338 LOG(ERROR) << "max memory size <= 0";
339 return false;
340 }
341 if (param_cmd.probability != 0 && param_cmd.probability != 1) {
342 LOG(ERROR) << "probability != 0 and probability != 1";
343 return false;
344 }
345 if (param_cmd.probability == 1 &&
346 (svm_type == SvmParam::ONE_CLASS || svm_type == SvmParam::EPSILON_SVR || svm_type == SvmParam::NU_SVR)) {
347 LOG(ERROR) << "one-class SVM and SVR probability output not supported yet";
348 return false;
349 }
350 return true;
351}

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected