Поэлементное умножение в CVXPY

Я пытаюсь выполнить поэлементное умножение в CVXPY в целевой функции. Допустимо ли это как часть выпуклой задачи?

X является переменной n x 1. V является константой n x n.

Я хочу сделать эквивалент np.multiply(X, V*X), который возвращает вектор n x 1.


person goldenbear137    schedule 11.04.2017    source источник
comment
Пожалуйста, покажите пример кода, который у вас есть, и опишите, что вы уже пробовали. Обратитесь к этому stackoverflow.com/help/how-to-ask для более подробной информации о том, как задать хороший вопрос. чтобы максимизировать ваши шансы получить полезный ответ.   -  person Metropolis    schedule 11.04.2017


Ответы (1)


Я думаю, что функция, которую вы ищете, это cvx.multiply

Например:

In [1]: import cvxpy as cvx

In [2]: n = 10

In [3]: X = cvx.Variable((n, 1))

In [4]: V = cvx.Variable((n, n))

In [5]: cvx.multiply(X, V*X)
Out[5]: Expression(UNKNOWN, UNKNOWN, (10, 1))

В примечания к обновлению 1.0 упоминается что эта функция раньше называлась mul_elemwise (‹1.0), что могло быть источником вашей путаницы.

person captaincapsaicin    schedule 19.05.2018