Ошибка импорта CVXPY - 'sum_entries' не определен - PullRequest
0 голосов
/ 27 декабря 2018

Я просто устанавливаю последнюю версию cvxpy с помощью pip install и прорабатываю примеры, представленные на http://nbviewer.jupyter.org/github/cvxgrp/cvx_short_course/blob/master/applications/portfolio_optimization.ipynb Код не работает для меня.Когда я запускаю следующее:

import numpy as np
np.random.seed(1)
n = 10
mu = np.abs(np.random.randn(n, 1))
Sigma = np.random.randn(n, n)
Sigma = Sigma.T.dot(Sigma)

# Long only portfolio optimization.
from cvxpy import *
w = Variable(n)
gamma = Parameter(nonneg=True)
ret = mu.T*w 
risk = quad_form(w, Sigma)
prob = Problem(Maximize(ret - gamma*risk), 
           [sum_entries(w) == 1, 
            w >= 0])

я получаю следующую ошибку:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-2-fde65e194bce> in <module>
     14 risk = quad_form(w, Sigma)
     15 prob = Problem(Maximize(ret - gamma*risk), 
---> 16                [sum_entries(w) == 1, 
     17                 w >= 0])

NameError: name 'sum_entries' is not defined

Я пытался использовать, например, cvx.sum_entries, как упоминалось здесь , ноэто не сработало.

Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 29 декабря 2018

sum_entries был переименован в sum в 1.0.

https://www.cvxpy.org/updates/index.html#numpy-compatibility

In [1]: from cvxpy import *                                                                           
In [2]: x = Variable(10)                                                                              
In [3]: sum(x)                                                                                        
Out[3]: Expression(AFFINE, UNKNOWN, ())
...