问题标签 [deap]

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.

0 投票
1 回答
3655 浏览

python - python DEAP遗传算法多核速度

我正在使用 Python 的 DEAP pacakge,我想对我的代码进行多核处理,我使用http://deap.gel.ulaval.ca/doc/dev/tutorials/distribution.html上的教程使用多处理成功完成了它。

我的问题如下:使用 8 个内核,理论上我能获得多少加速?我问的原因是因为我想决定我可以在与单核版本相同的时间内运行多少个人和几代人。我的代码过去运行大约需要 200 秒,使用 8 个内核,现在需要大约 0.5 秒(这是 400 倍的加速)。我可以假设任何东西都会加速 400 倍吗?我知道这很复杂,但我们将非常感谢您的帮助。

一般来说,如果有人可以提供帮助,我想了解多核如何改变计算流程。它只是将每个人的评估映射到每一代不同的核心上吗?还是并行运行几代?如果您知道我可以阅读的任何文档,请告诉我。

我没有提供代码示例,因为它似乎没有必要,因为这是一个非常高级的问题。

0 投票
2 回答
1360 浏览

python - 在 DEAP 中实现适用于 pandas DataFrames 的 GP

我正在为我的一个研究项目使用 DEAP 的遗传编程实现。

我想创建一个适用于 pandas DataFrames 的 GP:每个原语都是一个自定义函数,它将一个 DataFrame 作为输入并返回一个 DataFrame 作为输出。类似地,终端可以是全 1 或全 0 的 DataFrame。

其中一个原语的简单示例可能是(注意这是伪代码):

一个示例终端可能是:

DEAP可以做到这一点吗?代码会是什么样子?我不断收到NoneType来自终端的错误。

0 投票
0 回答
970 浏览

python - 多处理:处理大型数据集

我正在与 DEAP 合作。我正在根据一个大型数据集(400.000 列 200 个浮点数)评估一个人口(目前 50 个人)。我已经成功地测试了算法,没有任何多处理。执行时间约为40s/代。我想与更大的人口和更多的世代一起工作,所以我尝试通过使用多处理来加快速度。

我想我的问题与多处理有关,而不是与 DEAP 相关。这个问题与在进程之间共享内存/变量没有直接关系。主要问题是如何最小化磁盘访问。

我已经开始使用 Python 多处理模块。

代码看起来像这样

然后,再进一步:

评估函数使用全局“数据”变量。最后:

所以:主处理循环和池定义由if __name__ == "__main__":.

它以某种方式起作用。执行时间为: 1 个进程:398 s 2 个进程:270 s 3 个进程:272 s 4 个进程:511 s

多处理不会显着提高执行时间,甚至会损害它。

4 进程(缺乏)性能可以用内存限制来解释。我的系统基本上是分页而不是处理。

我想其他测量可以通过加载数据来解释。

我的问题:

1)我知道每次模块作为单独的进程启动时,都会读取和解压缩文件。这个对吗?这是否意味着每次 map 调用它包含的函数之一时都会读取它?

2)我试图将 unpickling 移到if __name__ == "__main__":保护之下,但是,然后,我收到一条错误消息,说当我调用评估函数时未定义“数据”。你能解释一下我如何读取文件一次,然后只将数组传递给进程吗

0 投票
1 回答
434 浏览

python - Python - 使用布尔值进行安全索引

我有一些代码从列表中返回值。我正在使用强类型遗传编程(使用优秀的 DEAP 模块),但我意识到1& 与and0相同。这意味着一个函数需要一个整数,它可能会以一个布尔函数结束,这会导致一些问题。TrueFalse

例如: list = [1,2,3,4,5]

list[1]返回2

list[True]也返回2

有没有一种 Pythonic 的方法来防止这种情况?

0 投票
1 回答
116 浏览

python-2.7 - 如何使用 DEAP 创建人口的三个互斥子集

我正在使用 Python 和 DEAP 遗传编程库。我有一个人口集,但我需要创建三个相互排斥且共同详尽的人口子集。这是 DEAP 本身支持的,还是我需要自己创建这些子集?

0 投票
1 回答
844 浏览

python - Python DEAP mutFlipBit 的 TypeError

我正在用 DEAP 编写我的第一个进化算法。一切正常,但 MultiFlipBit 变异运算符。当我尝试对树(个体)进行变异时,出现以下错误:

这是代码:

在此先感谢您的帮助。

蟒蛇版本:2.7

编辑:在就如何解决问题提出建议后,我在 DEAP 突变库中添加了几个“打印”,以更好地了解正在发生的事情。根据原始问题,这是相同的错误,但有一些额外的信息:

再次感谢您的任何贡献

0 投票
1 回答
365 浏览

classification - GA 和 DEAP 中的染色体表示

我是 DEAP 的新手,我想将我的染色体表示为一组将由 SVM 分类器测试的特征,我现在的问题是如何在染色体中表示我的 35 个特征

0 投票
1 回答
2626 浏览

python - Windows 上 python occers 的 RuntimeError 到多处理

我正在Windows机器上尝试python的线程和多处理。但是python给出了以下消息。

在windows中 if name == 'main': 因此是必须完成的,我有一个实现如下,但是在解决之后会发生这样的错误或者这是我不知道的情况。请帮我。

0 投票
1 回答
1645 浏览

python - 为 Python 安装 Deap (Spyder)

我应该如何从 spyder 为 python 安装 deap 包?

我努力了:

pip install deal

0 投票
1 回答
1718 浏览

python - 当我在 Python DEAP 包中使用“名人堂”功能时,最大值减少

DEAP 是一个很棒的 Python 包,用于支持进化算法。

现在,我从简单的示例OneMax Problem中学习它

启用 HallofFame “它将跟踪出现在进化中的最佳个体(即使在它消失的情况下也会保留它)”

但是当我使用它时,种群在进化过程中的最大适应度有时会降低一点。

我认为当最好的父母离开时,fitness.Max 不应该减少,而是保持不变或增加。

这是我在 DEAP 网站上直接复制的代码。

如果需要,我可以尝试详细说明。干杯。

第 3 代的最大适应度下降:

在此处输入图像描述