scipy.optimize()值错误:求和的形状不匹配

徐da |

嗨,我是scipy和numpy的新手,

我正在尝试使用解决QP问题进行类分配

minimize x^t * H * x  + f^t * x 
where x > 0

其中H是2 X 2块矩阵,每个元素是ak X k维矩阵,x和f是2 X 1向量,每个元素是ak维向量。

np.shape(H) = (2, 2, k, k)
np.shape(x) = (2, k)

即使我认为功能正确,也出现形状不匹配错误

这是我的实现:

def func(x):    #This function runs perfectly ,returns a value 

    return 0.5 * np.tensordot(x, np.tensordot(H, x, axes=([1,3],[0,1]))) + np.tensordot(x,f)

x_init = np.ones((2, k))

bnds = (0, None)

theta = opt.minimize(func , x_init, bounds = bnds)
# I get an error here. 
# ValueError: shape-mismatch for sum

我是否缺少明显的东西?

索洛GP卡斯特罗

问题是x_init被压扁了opt.minimize您可以通过x在函数内部重塑来解决此问题

def func(x):
    x = x.reshape(2, -1)
    return 0.5 * np.tensordot(x, np.tensordot(H, x, axes=([1,3],[0,1]))) + np.tensordot(x,f)

结果将由属性捕获thetax从中进行优化theta.x,您将看到该属性也被展平,需要相同的重塑。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

scipy-0.18.1的`scipy.optimize.minimize`是否存在错误?

来自分类Dev

scipy imsave保存错误的值

来自分类Dev

Scipy.optimize.minimize返回错误的结果

来自分类Dev

Scipy.optimize.minimize返回错误的结果

来自分类Dev

SciPy凸包错误

来自分类Dev

SciPy medfilt错误结果

来自分类Dev

Python Scipy错误

来自分类Dev

SciPy:链接错误

来自分类Dev

python numpy或scipy错误

来自分类Dev

Scipy 安装错误

来自分类Dev

插值Scipy Python

来自分类Dev

scipy 插值问题

来自分类Dev

Python Scipy GEV适合与分布不匹配

来自分类Dev

Python scipy fsolve“'func'参数的输入和输出形状不匹配”

来自分类Dev

scipy.optimize.minimize的精度

来自分类Dev

scipy.optimize.minimize 多元

来自分类Dev

Scipy ODR 与 fsolve 不兼容?

来自分类Dev

从scipy.optimize.curve_fit获取与参数估计值相关的标准错误

来自分类Dev

scipy.test()导致错误

来自分类Dev

SciPy 拟合给出错误

来自分类Dev

scipy 模块未找到错误

来自分类Dev

scipy p值返回0.0

来自分类Dev

发生python scipy.optimize.fmin_l_bfgs_b错误

来自分类Dev

多元优化-scipy.optimize输入解析错误

来自分类Dev

通过 scipy.optimize.fmin 来自 numpy.root 的错误

来自分类Dev

使用scipy.optimize.minimize查找全局最小值

来自分类Dev

scipy.optimize.minimize和Minuit返回初始猜测值

来自分类Dev

scipy.optimize.minimize 更改低小数位的值

来自分类Dev

Python 3:优化Scipy数组的求和