AnyMath 文档
Notebook

实验自动化

该项目提供了一个Engee应用程序,允许您配置计算实验,在此期间将重复运行某个模型。 重新排列其参数的值允许您形成组合的网格,并在广泛的条件下计算模型的操作,并形成表格或矩阵以确定目标功能,以便最终选择所需的一组配置以

启动应用程序

在此示例的文件夹中,您将找到该文件 app.jl 使用应用程序代码,我们将使用以下命令启动该应用程序代码:

In [ ]:
genie_app = engee.genie.start("$(@__DIR__)/app.jl", log_file="log.txt", open_url=true);

要停止应用程序,请运行以下命令并取消注释:

In [ ]:
# engee.genie.stop("$(@__DIR__)/app.jl");
simple_experiment_planner.gif

关于环境准备的信息

准备工作分四个简单步骤进行:

  1. 打开适合修改和多次启动的模型
  2. 设置输入变量的列表和范围
  3. 设置输出变量列表和聚合函数
  4. 运行实验(数据将保存到文件中 experiment_results.csv)

实验计划程序将新值发送到****Engee工作区中的变量。 为了影响模型的运行,这些变量必须在块参数或模型的初始化代码中的某个位置使用。

您可以通过指定输入变量的向量来开始制定计算任务。 可以通过列出必要的值来设置此向量(例如 [1,2,3]),或通过指定范围(1:101:0.1:10). 在Julia中可计算的任何表达式也是合适的。 根据以下语法在单独的行上声明每个输入变量: var1: 1:10 哪里 var1 -变量的名称,后跟第一个冒号后的计算值。

输出变量以类似的方式设置,但第二个参数是操作的标识符,该操作将允许将模型值的输出向量转换为标量。 在最简单的情况下,它将采用最后一个元素(x: end),但您可以使用第一个元素,平均值,最大值等。

{%note info"不要忘记在模型"%}"中标记输出变量"on record"

为了使变量x用作模型的输出变量,必须将其表示为命名信号,并且必须将信号线标记为用于记录(logging)。

配置后,您可以保存设置以供将来使用(它们保存到变量工作区),或者从变量中加载它们(如果有的话)。 按一下按钮 Запустить 实际上,您正在运行模型的多重执行,并替换输入参数的所有排列。

实验计划程序在画布上运行当前当前打开的模型(通过执行 engee.run()). 如果模型未打开,您将在应用程序状态栏中看到错误消息。

该应用程序允许您从工作区中的变量保存和下载实验计划。

要从变量加载实验计划,首先需要在工作区中创建它们。 例如,通过从文件下载(使用打开按钮) saved_config.jld.

结论

下面是一个相当简单的实验规划器的示例,它允许您重复运行模型而无需额外编程,并在工作区中获取对象,您可以从中构建图形,找到最佳参数集,或只