微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pygmo 问题和定义 Hessian / Sparsity Hessian

如何解决Pygmo 问题和定义 Hessian / Sparsity Hessian

我有一个关于将 Hessian 信息放入我的问题类的问题。 为简化起见,我使用了 Rosenbrock 问题并成功添加了梯度。 但是当我尝试定义 Hessian 时遇到了问题

使用稀疏技巧

    def hessians(self,x):
    hessf=np.zeros((2*self.dim-1,))
    for i in range(self.dim-1):
        hessf[2*i]+=-400*x[i+1]+1200*x[i]**2+2
        hessf[2*i+1]+=-400*x[i]
        hessf[2*i+2]+=200
    return hessf
def hessians_sparsity(self):
    sparsit=((0,0),)
    for i in range(self.dim-1):
        sparsit = sparsit + ((i+1,i),(i+1,i+1),)
    return sparsit

我收到以下错误 数组的维数不正确:1;预期 2

或者使用密集向量

    def hessians(self,x):
    hessf=np.zeros((int(self.dim*(self.dim+1)/2),))
    for i in range(self.dim-1):
        ni=int(i*(i+3)/2)
        hessf[ni]+=-400*x[i+1]+1200*x[i]**2+2
        hessf[ni+i+1]+=-400*x[i]
        hessf[ni+i+2]+=200
    print(len(hessf))

我从 Scipy 算法运行 Newton-CG 时收到消息

pyg.algorithm(pyg.scipy_optimize(method='Newton-CG')).evolve(pyg.population(prob=problemgrad,size=1))


array has incorrect number of dimensions: 0; expected 1

所有似乎都与稀疏向量有关..我没有找到这个问题的例子 没有粗麻布,一切都很好 谢谢你的帮助 纳吉

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。