如何在 Erlang 中正确运行一组 TWEANN 基准?

Posted

技术标签:

【中文标题】如何在 Erlang 中正确运行一组 TWEANN 基准?【英文标题】:How to run a set of TWEANN benchmarks in Erlang correctly? 【发布时间】:2016-07-02 00:46:01 【问题描述】:

我一直在阅读 Gene I Sher 的Erlang 神经进化手册,并尝试复制其中描述的所有实验。 这一切都奏效了,直到我来到chapter 19,上面写着

设置完所有内容后,我们会为每个记录的实验设置执行基准测试,并运行它直到完成。为此,我们只需修改 benchmarker 模块中使用的约束,然后为我们的每个实验设置执行 benchmarker:start(Experiment_Name)

总共有 14 个实验,命名为:

1. [SlidingWindow5]2. [SlidingWindow10]3. [SlidingWindow20] 4. [SlidingWindow50]5. [SlidingWindow100]

1. [ChartPlane5X10]2. [ChartPlane5X20]3. [ChartPlane10X10]4. [ChartPlane10X20]5. [ChartPlane20X10]6. [ChartPlane20X20]7. [ChartPlane50X10]8. [ChartPlane50X20]9. [ChartPlane100x10]

刚刚启动一个 polis 并在 erlang shell 中运行 benchmarker:start(SlidingWindow5). 会产生 * 1: variable 'SlidingWindow5' is unbound

我可能很迟钝并且没有做一些明显的事情,但我真的很想了解将哪些参数传递给benchmarker:start()

到目前为止,阅读源代码并没有帮助。

我认为没有必要阅读整本书来弄清楚如何使这段特定的代码工作。

【问题讨论】:

【参考方案1】:

好的。我需要使用全小写的名称:benchmarker:start(slidingwindow5).。 这个答案是正确的,但没有定论;它给出了解决方案,但没有从 Erlang 的角度解释为什么解决方案是这样的。请不要在投票之前投票。

【讨论】:

您是否费心快速了解一下Getting Started with Erlang Sequential Programming 语言? 没有。我确实尝试阅读并遵循本教程 (learnyousomeerlang.com/content) 那么请仔细阅读Invariable Variables 和Atoms。特别注意Atoms的第一段。 谢谢,我会这样做,除此之外,我正在考虑尝试。

以上是关于如何在 Erlang 中正确运行一组 TWEANN 基准?的主要内容,如果未能解决你的问题,请参考以下文章

如何在服务器上正确安装 Erlang、Elixir 和 mix?

Erlang:如何在主管中正确调度带有 start_child 的 gen_server 并调用 API

如何在 Erlang shell 中运行 Erlang 应用程序

erlang 在运行快速排序后输出列表长度 - 第 2 部分

如何在erlang中应用热代码交换功能作为补丁?

Erlang 中的进程平衡