这是我的代码:
将cvxpy导入为cp
c = cp.Variable(1)
然后我有一个numpy.ndarray m 和一个约束
约束= [m> = c]。
我接下来构造指标
idx = cp.transforms.indicator(constraint)
在这个阶段,我遇到两个问题:
a)当我在控制台窗口中评估idx时,出现以下错误:
is_constant中的第159行“ C:\ Program Files \ Anaconda3 \ envs \ py_cvx \ lib \ site-packages \ cvxpy \ expressions \ expression.py” 返回自身。 is_constant AttributeError:“指标”对象没有属性“ _Expression__is_constant” 在处理上述异常期间,发生了另一个异常: 追溯(最近一次通话): 文件“ C:\ Program Files \ Anaconda3 \ envs \ py_cvx \ lib \ site-packages \ IPython \ core \ formatters.py”,第224行,在catch_format_error中 r =方法(自身,* args,kwargs) __call 中的文件“ C:\ Program Files \ Anaconda3 \ envs \ py_cvx \ lib \ site-packages \ IPython \ core \ formatters.py”,第702行 printer.pretty(obj) 漂亮的文件“ C:\ Program Files \ Anaconda3 \ envs \ py_cvx \ lib \ site-packages \ IPython \ lib \ pretty.py”,第402行 返回_repr_pprint(obj,self,cycle) _repr_pprint中的第697行,文件“ C:\ Program Files \ Anaconda3 \ envs \ py_cvx \ lib \ site-packages \ IPython \ lib \ pretty.py” 输出= repr(obj) repr 中的文件“ C:\ Program Files \ Anaconda3 \ envs \ py_cvx \ lib \ site-packages \ cvxpy \ expressions \ expression.py”,第100行 返回“ Expression(%s,%s,%s)”%(self.curvature, 文件“ C:\ Program Files \ Anaconda3 \ envs \ py_cvx \ lib \ site-packages \ cvxpy \ expressions \ expression.py”,曲率线121 如果self.is_constant(): is_constant中的第162行“ C:\ Program Files \ Anaconda3 \ envs \ py_cvx \ lib \ site-packages \ cvxpy \ expressions \ expression.py” arg.is_constant()用于self.args中的arg) 文件“ C:\ Program Files \ Anaconda3 \ envs \ py_cvx \ lib \ site-packages \ cvxpy \ expressions \ expression.py”,行162,在 arg.is_constant()用于self.args中的arg) AttributeError:“不平等”对象没有属性“ is_constant”
b)我希望指标在true时返回1,在false时返回0,如果不是true则返回0,如果false则返回infty。我的想法是关于以下解决方案:
idx = cp.transforms.indicator(constraint)== 0
一旦出现上述错误/问题,是否可以解决该问题?
感谢您的回复。 拉尔夫