python - CVXPY 导入错误 - 'sum_entries' 未定义

标签 python cvxpy

我只是使用 pip install 安装了最新版本的 cvxpy,并按照我的方式完成了 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 here , 但它没有用。

有人能帮忙吗?

最佳答案

sum_entries 在 1.0 中被重命名为 sum

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, ())

关于python - CVXPY 导入错误 - 'sum_entries' 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53943840/

相关文章:

python - 在 CVXPY 中阻止 LMI

python - Python 解释器 : Making your own programming language?

Python 3.3 与 Python 3.2 问题

python - 当方法返回时字典缺少键

python - 在具有实际值的 cvxpy 中检查约束是可以的

python - cvxpy :'sum_entries' 未定义

python - Qt 给出了错误的屏幕几何图形?

python - AppEngine - 何时使用父关系?

python - CVXPY 最小化函数中的 ValueError(最小方差优化)

python - 在 CVXPY 中对变量矩阵的部分转置设置约束