在cvxpy 0.4.10中获得“无法将AFFINE和CONVEX相乘”,但在1.0.18中获得

时间:2019-12-26 02:50:03

标签: cvxpy

我正在两个具有不同版本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.

有人知道为什么吗?我做错什么了吗?

非常感谢!谢谢!

1 个答案:

答案 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))