问题标签 [pygmo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在课堂外加载 dll 会产生不同的行为
我正在使用 python 使用 cdll.LoadLibrary() 加载在 c++ 中生成的 DLL(正常工作)。问题是每次调用类时我都需要在类中重新加载 DLL,否则会产生不同的行为。
当我在类中重新加载 dll 时,代码评估适应度函数大约 4192 次(262 次迭代),但是当我删除重新加载 dll 的两行时,代码只运行 16 次(一次迭代),在收敛之前停止。
这是我的代码:
现在,每次调用健身时代码都会重新加载 dll,这会增加经过的时间。我只想加载一次。
python - PyGMO 批量适应度评估
我的目标是使用PyGmo执行参数估计(模型校准) 。我的模型将是一个外部“黑色 blox”模型(c 代码),输出J
要最小化的目标函数(在这种情况下,J 将是模型输出和测量数据之间的“归一化均方根误差”(NRMSE)。加快优化(校准)我想在多个核心/线程上并行运行我的模型/模拟。因此我想在 PyGMO 中使用批量适应度评估器(bfe)。我使用简单的问题类准备了一个最小示例,但是使用纯python(无外部模型)和罗森布洛克问题:
当我尝试运行此代码时,出现以下错误:
发生异常:ValueError
功能:bfe_check_output_fvs
其中:C:\projects\pagmo2\src\detail\bfe_impl.cpp, 103
什么:批量适应度评估产生了无效结果:产生的适应度向量的数量为 30,与输入决策向量的数量为 1 不同
通过删除或删除这两行:
该脚本可以无错误地运行。
我的问题:
- 如何使用批量适应度评估?(我知道这是 PyGMO 的一项新功能,他们仍在编写文档......)有人可以举一个关于如何实现它的最小示例吗?
- 这是加快我的模型校准问题的正确方法吗?还是我应该使用岛屿和群岛?如果我没记错的话,群岛中的岛屿不会相互交流,对吧?因此,如果执行例如粒子群优化并希望同时(并行)评估多个目标函数调用,那么批量适应度评估器是正确的选择吗?
- 在这个例子中我需要关心群岛和岛屿吗?它们究竟是为了什么?是否值得运行几个优化但具有不同的初始 x(目标函数的输入)然后采取最佳解决方案?这是使用 GA 进行优化的常用方法吗?
我对优化和 PyGMO 领域非常了解,所以谢谢你的帮助!
python - 我在使用 pygmo 软件时遇到问题
我已经通过 conda 提示安装了 pygmo 软件。并在运行时。出现以下错误。我该如何修复我的安装
python - 在 PyGMO 中访问代数和退出标志
在 PyGMO 中,有没有办法访问和存储总代数和退出标志?
我只想出了以下解决方案
但它非常慢,只解决了一半的问题。
multithreading - 为什么我的群岛线程没有完成它们的工作?
我现在正在使用 pygmo,直到现在我都忽略了 archiplago 函数,因为我遇到了问题,线程没有完成它们的工作,因此程序“停止”在
archi.wait()
.
我已经构建了一个测试问题,希望也许我在真正的问题中做了一些不允许多线程处理的问题,但测试问题也不适用于群岛。你有什么想法我做错了吗?
代码: