常见问题#
我应该使用 SMAC2 还是 SMAC3?#
SMAC3 是原始 SMAC 工具的重新实现 (Sequential Model-Based Optimization for General Algorithm Configuration, Hutter et al., 2021)。然而,此重新实现与原始 SMAC 略有不同。如需与原始 SMAC 进行比较,请参阅此处提供的 SMAC (v2) 的稳定 Java 版本:此处。由于 SMAC3 正在积极维护中,我们建议在任何 AutoML 应用中使用 SMAC3。
无法导入 SMAC。#
尝试从 SMAC 的根目录运行 SMAC,或者先运行安装。
pyrfr 抛出神秘的导入错误。#
确保用于编译 pyrfr 的 gcc 与执行期间用于链接的 gcc 相同。这在使用 Anaconda 时经常发生。请参阅安装以获取解决方案。
我如何将 :term:BOHB
和/或 HpBandSter 与 SMAC 一起使用?#
外观模式 MultiFidelityFacade 是最接近 :term:BOHB
和/或 HpBandSter 的实现。
我发现了一个错误或 SMAC 的行为不符合预期。我应该在哪里报告?#
在我们的 GitHub 问题列表中开启一个问题。在报告错误之前,请确保:
- 你的错误尚未在我们的问题跟踪器中报告。
- 你正在使用最新的 SMAC3 版本。
如果你发现了问题,请向我们提供以下信息:
- 问题的描述。
- 重现问题的示例。
- 任何有助于解决错误的关于你的设置的信息(例如已安装的 python 包)。
- 欢迎附上显示问题的截图。
我想贡献代码或讨论新想法。我应该在哪里报告?#
SMAC 使用 GitHub 问题跟踪器来处理问题和反馈,并且是讨论新特性和正在进行的工作的首选地点。请同时参阅我们的贡献指南。
什么是 deterministic(确定性) 的含义?#
如果将 deterministic
标志设置为 False
,则假定目标函数是非确定性的。为了评估非确定性算法的配置,将使用不同的种子进行多次运行,以确定该配置在单个实例上的性能。确定性算法不依赖于种子,因此只需在单个实例上评估一次配置即可评估该实例上的性能。尽管如此,默认种子 0 仍会传递给目标函数。
为什么 SMAC 无法在 Colab/Mac 上运行并因错误“Child process not yet created”而崩溃?#
SMAC 使用 pynisher 来对目标函数运行器强制执行时间和内存限制。然而,pynisher 可能并非总是在特定设置上有效。为了克服此错误,建议删除限制以使 SMAC 运行。