如何在Python中静音cvxopt求解器?

14
每当我在终端中运行Python cvsopt求解器时,它会打印出以下内容:
     pcost       dcost       gap    pres   dres
 0: -8.0742e+00 -7.3715e+00  3e+03  5e+01  4e-15
 1: -6.6241e-01 -7.2834e+00  7e+01  1e+00  3e-15
......
Optimal solution found.

我能将此消息静音吗?谢谢!


如果这是你的问题,你总是可以将输出重定向到 /dev/null。 - munk
2个回答

19

在调用求解器之前,只需添加以下行:

solvers.options['show_progress'] = False

Python 是一种高级编程语言,具有简单易学的语法,并且被广泛应用于数据科学和人工智能领域。它是一种解释型语言,意味着代码可以直接运行,无需编译过程。此外,Python 还拥有丰富的第三方库,可以轻松地处理各种任务,如图像处理、文本分析和网络编程。翻译说明:这段内容介绍了 Python 编程语言的特点和应用。Python 语言简单易学,广泛应用于数据科学和人工智能领域。Python 是一种解释型语言,且具有丰富的第三方库,可进行各种任务的处理。 - user2720864

7

您可能需要通过特定于您使用的求解器的选项。例如,要将cvxopt LP求解器输出静音为GLPK:添加以下选项

options={'glpk':{'msg_lev':'GLP_MSG_OFF'}}

例如:result = cvxopt.solvers.lp(c, G, h, A, b, solver='glpk', options={'glpk':{'msg_lev':'GLP_MSG_OFF'}})。你最好使用较少的输出减少,参见http://glpk-java.sourceforge.net/apidocs/org/gnu/glpk/GLPKConstants.html了解所有允许的消息级别。


这对我没有用。我甚至将这个答案与sjm的答案结合起来,它仍然打印出所有内容。 - loganjones16
@loganjones16 solvers.lp(c, A, b, options={'show_progress': False}) 对我来说是有效的。但指定求解器solver='glpk'会出现某些问题。 - Roland Pihlakas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接