我正在两个具有不同版本cvxpy的环境中工作。
在 1.0.18 上,此工作正常:
import cvxpy as cp
print(cp.__version__)
X = cp.Parameter(name='X', shape=(10), nonneg=True)
Y = cp.Variable(shape=(10))
print(X.T @ cp.abs(Y))
>>> Expression(CONVEX, NONNEGATIVE, ())
但是在 0.4.10 上,这不是:
import cvxpy as cp
print(cp.__version__)
X = cp.NonNegative(name='X', rows=10)
Y = cp.Variable(rows=10)
print(X.T @ cp.abs(Y))
>>> DCPError: Cannot multiply AFFINE and CONVEX.
有人知道为什么吗?我做错什么了吗?
非常感谢!谢谢!
答案 0 :(得分:0)
cp.NonNegative
用于创建Variable
,而不是Parameter
。
这有效。
import cvxpy as cp
print(cp.__version__)
X = cp.Parameter(name='X', rows=10, sign='positive')
Y = cp.Variable(rows=10)
print(X.T @ cp.abs(Y))