如何在 C++ [库模式] 中抑制 LibSVM 的输出
How to suppress output of LibSVM in C++ [library mode]
当从命令行执行 LibSVM 时,我可以给 -q 作为参数,一切都会好的。但是,当我将它用作库时,没有 -q 参数可以通过编程方式设置。那我怎样才能抑制输出呢? Java 和 python 中存在解决方案,但 C++ 中没有。
LibSVM 也作为源代码分发。您可以删除所有不需要的 fprintf 或将输出函数指针信息设置为 0
static int (*info)(const char *fmt,...) = 0;//&printf;
并重新构建它:
nmake -f Makefile.win lib
您可以使用他们在 svm_train.c.
中使用的相同技巧
首先定义一个什么都不做的函数:
void print_null(const char *s) {}
然后调用设置打印的函数:
svm_set_print_string_function(&print_null);
svm_set_print_string_function([](auto c) {});
当从命令行执行 LibSVM 时,我可以给 -q 作为参数,一切都会好的。但是,当我将它用作库时,没有 -q 参数可以通过编程方式设置。那我怎样才能抑制输出呢? Java 和 python 中存在解决方案,但 C++ 中没有。
LibSVM 也作为源代码分发。您可以删除所有不需要的 fprintf 或将输出函数指针信息设置为 0
static int (*info)(const char *fmt,...) = 0;//&printf;
并重新构建它:
nmake -f Makefile.win lib
您可以使用他们在 svm_train.c.
中使用的相同技巧首先定义一个什么都不做的函数:
void print_null(const char *s) {}
然后调用设置打印的函数:
svm_set_print_string_function(&print_null);
svm_set_print_string_function([](auto c) {});