cvxpy - 在 cvxpy 0.4.10 但不是 1.0.18 中获得“无法乘以 AFFINE 和 CONVEX”
问题描述
我正在两个不同的环境中工作,它们具有不同版本的 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.
有谁知道为什么?我做错什么了吗?
非常感激!谢谢!
解决方案
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))
推荐阅读
- html - 放置网格项目而不使用模板区域
- java - Java-9 上 CompletableFuture 的 orTimeout 方法是否会杀死长时间运行的任务?
- vue.js - 如何将路由器参数传递给 Vue 中的 import 语句?
- c# - Log4Net 自定义 appender 初始化
- rpm - 在 RPM 中安装期间更改安装前缀
- mysql - 如何在 MySQL 中查询多表?
- python - 用于更改具有多个输出的文件中的字母的 awk 命令
- java - 为什么 Files.isHidden(Path) 为 Windows 上的目录返回 false?
- batch-file - 从批处理文件生成 CER 文件。如何将文件附加到蝙蝠
- scala - Scala 类型系统帮助:让故障级联堆栈