如何在scipy微分演化中访问目标函数中的变量?

问题描述 投票:0回答:1

我正在使用DE来优化一个神经网络问题。我需要在对象函数中访问变量来创建一个图。

我在这里报告一个没有NN的简单例子,只是为了更好地解释我的问题。

from scipy.optimize import differential_evolution

def obj_fun(x):
    A= x[0]
    B= x[1]
    C= A*B+B**3
return C

solution=differential_evolution(obj_fun,
                            bounds=[(10,20),(5,15)],
                            strategy='rand1exp',
                            popsize=10,
                            maxiter=20,
                            polish=True,
                            disp=True,
                            seed=0)

我想知道如何创建一个DataFrame,其中包含DE尝试过的所有A和B,这样我就可以做一个3D图来可视化最好的耦合A,B,以提供更好的C。

我认为这个解决方案是允许在目标函数中使用的变量在每次运行时被 "提取 "出来,使用append方法创建DF。但是我真的不知道怎么做。

我真的很感激任何人在这方面的帮助.谢谢你。

史蒂夫,我在用DE优化一个神经网络问题。

python function variables optimization scipy
1个回答
0
投票
def obj_fun(x):
    A= x[0]
    B= x[1]
    C= A*B+B**3
    obj_fun.dump.append([A, B, C])
return C
obj_fun.dump = []

然后访问 obj_fun.dump DE跑后。

© www.soinside.com 2019 - 2024. All rights reserved.