我正在使用可选的MOSEK求解器和CVXOPT二次规划,即
sol = cvxopt.solvers.qp(-Q,-p,G,h,A,b,solver='mosek')
现在没有使用MOSEK求解器,即
sol = cvxopt.solvers.qp(-Q,-p,G,h,A,b)
可以使用命令
抑制CVXOPT生成的终端输出cvxopt.solvers.options['show_progress'] = False
但是,使用MOSEK求解器选项时,这不起作用。我在几个循环中的MOSEK求解器产生了很多我不感兴趣的输出,这意味着我看不到我感兴趣的输出(即我选择使用'print'输出的内容)。
有谁知道是否可以抑制MOSEK输出?或者如果没有,潜在的解决方法(将输出传输到文件或其他东西)?
非常感谢!
丹
p.s抱歉,我无法包含更多特定标签(我不允许创建新标签)。
答案 0 :(得分:3)
我无法弄清楚如何通过CVXOPT传递这些选项,但在对CVXOPT的源进行一些筛选之后,我想出了这个解决方案:
from cvxopt import matrix, solvers
from mosek import iparam
solvers.options['MOSEK'] = {iparam.log: 0}
适用于mosek 6。
答案 1 :(得分:0)
这个问题应该在CVXOPT google-group(链接来自 CVXOPT主页):
http://groups.google.com/forum/?fromgroups#!forum/cvxopt
无论如何,来自doc-strings:
>>> help(cvxopt.msk.qp)
.
.
Options are passed to MOSEK solvers via the msk.options dictionary,
e.g., the following turns off output from the MOSEK solvers
>>> msk.options = {mosek.iparam.log: 0}
see chapter 15 of the MOSEK Python API manual.