标记为非凸的凸优化问题

Convex Optimization problem labeled as non convex

我正在使用 cvxpy (1.0.11) 解决凸优化问题。

我认为我遇到的凸问题被标记为非凸问题,因为它不知道参数 alpha 在 [0, 1] 之间。

我从这一行知道这个失败了... loss = mse + (1-alpha) * lam * (penalty_1 + penalty_2) + alpha * lam * penalty_3

当这一行成功时... loss = mse + lam * (penalty_1 + penalty_2) + lam * penalty_3

现在超参数是这样参数化的。如果有办法绑定它们,我还没有在 API

的任何地方找到它
alpha = cvx.Parameter(nonneg=True)
alpha.value = 0.5
lam = cvx.Parameter(nonneg=True)
lam.value = 10**(2)

如何告诉 cvxpy alpha 是 [0, 1] 之间的数字?

我找到了一个非常简单的解决方案。不要将 alpha 设置为参数,只需将其设置为普通浮点数即可。

alpha = 0.5
lam = cvx.Paramter(nonneg=True)
lam.value = 1e2