AutoKeras长时实验实用技巧:中断恢复、搜索预算控制与常见问题FAQ清单
2026/9/23 9:55:58 网站建设 项目流程

AutoKeras长时实验实用技巧:中断恢复、搜索预算控制与常见问题FAQ清单

【免费下载链接】autokerasAutoML library for deep learning项目地址: https://gitcode.com/gh_mirrors/au/autokeras

AutoKeras 是基于 Keras 的 AutoML 深度学习库,支持图像、文本和结构化数据的自动模型搜索。长时实验(默认最多 100 次模型试验)常遇到中断、超预算、选模困惑等问题。本文整理 6 条 AutoKeras 长时实验实用技巧:如何用overwrite参数一键中断恢复、用max_trialsepochs控制搜索预算、4 种 Tuner 怎么选,以及一份常见问题 FAQ 清单。

为什么长时实验容易"翻车"?

AutoKeras 的搜索过程会:

  1. 依次尝试多个不同超参数组合的模型(称为 trial);
  2. 每个 trial 都进行训练,并用早停(EarlyStopping)加速探索;
  3. 搜索结束后,将最优模型用全部数据完整重训一次再保存。

整个过程由 autokeras/engine/tuner.py 中的search方法驱动。数据量大、trial 多时,跑几个小时甚至几天都很常见——所以中断恢复预算控制是实战必备技能。

技巧一:中断恢复(一键续跑长时搜索)

核心参数:overwrite(默认False

  • overwrite=False:发现同名项目目录时,不覆盖,自动加载已有进度,继续之前被中断的搜索;
  • overwrite=True:清空重来,开启全新搜索。

💡 也就是说,任务被 kill 掉、机器重启、网络断开之后,只需重新运行同一段代码,AutoKeras 会自动从上次的断点继续,不会丢失已完成的 trial。

import autokeras as ak # overwrite 默认 False:重跑同一代码即可续跑 clf = ak.ImageClassifier(max_trials=100) clf.fit(x_train, y_train)

相关参数定义见 autokeras/tasks/image.py,所有任务 API(TextClassifierStructuredDataClassifier等)和 autokeras/auto_model.py 中的AutoModel均支持。

配套建议:

场景做法
想续跑旧实验保持project_name不变,overwrite=False重跑
想推倒重来overwrite=True
实验目录指定在哪directory="my_experiments",避免散落在当前目录

技巧二:搜索预算控制(时间与 trial 双限流)

长时实验最贵的是时间。三个关键"阀门":

1️⃣max_trials:控制试验次数

默认 100 个 trial,可按数据规模和算力调小:

clf = ak.ImageClassifier(max_trials=20) # 小数据集建议 10~30

2️⃣epochs:控制每个 trial 的训练轮数

  • 不传epochs时,AutoKeras 最多训 1000 轮,但验证损失 10 轮不提升就早停;
  • 搜索结束后,最优模型会按"最佳 trial 所用轮数"完整重训(见 autokeras/engine/tuner.py 的_get_best_trial_epochs)。

3️⃣max_model_size:防止搜索出超大模型

限制模型参数量上限,避免某些 trial 因模型太大拖慢整个实验。

Tuner 选择:影响预算消耗速度

AutoModel支持 4 种 Tuner(映射表见 autokeras/auto_model.py):

Tuner适用场景预算敏感度
greedy(默认)通用,收敛稳
bayesian预算较少、要高效利用 trial低(省 trial)
hyperband想快速剪掉差模型低(省时间)
random基线对照、调试

任务 API 默认使用"任务专属 Tuner"——先评估该任务最常用的模型,再探索其他模型,见 autokeras/tuners/task_specific.py。自定义 Tuner 可继承 autokeras/engine/tuner.py 中的AutoTuner

技巧三:用 objective 让"好模型"定义更准

默认按val_loss选最优模型,但业务上更常看准确率等指标:

clf = ak.ImageClassifier( max_trials=30, objective="val_accuracy", metrics=["val_accuracy"], )
  • objective支持任意验证指标名(如'val_auc'),带val_前缀;
  • 自定义指标可封装成 Keras Tuner 的 Objective 传入,示例见官方 FAQ:docs/templates/tutorial/faq.md。

小提示:换指标时保持metricsobjective一致,日志里才能对照看到目标指标的变化。

技巧四:跑完自动取最优模型与管线

搜索结束后,产物都在项目目录下:

  • best_model.keras:完整重训后的最优模型(路径属性见 autokeras/engine/tuner.py);
  • best_pipeline:与最优模型配套的数据预处理管线,预测时务必使用,保证训练/推理一致。
clf.fit(x_train, y_train) best_model = clf.tuner.get_best_model() best_pipeline = clf.tuner.get_best_pipeline()

FAQ 常见问题清单

Q1:任务被杀掉了,怎么续跑?重跑同一代码即可。overwrite默认False,AutoKeras 自动加载同名项目并继续。官方说明见 docs/templates/tutorial/faq.md。

Q2:怎么自定义 metrics 和 loss?直接传给任务 API:ak.ImageClassifier(metrics=['mse'], loss='mse')(见 docs/templates/tutorial/faq.md)。

Q3:怎么用自定义指标(如 F1)选最优模型?自定义函数 +kerastuner.Objective('val_f1_score', direction='max')传入objective,同时加入metrics(示例见 docs/templates/tutorial/faq.md)。

Q4:搜索为什么比预期慢?检查三点:max_trials是否过大、epochs是否没限制、数据是否需要抽样调试。先用小max_trials+ 抽样数据验证流程,再上满预算。

Q5:project_namedirectory有什么区别?project_name是实验名(续跑匹配依据),directory是项目目录父路径。两者一致才能保证续跑命中同一实验。

Q6:环境要求是什么?Python >= 3.7,TensorFlow >= 2.8.0,安装方式为pip3 install autokeras(见 README.md)。

长时实验检查清单 ✅

  • project_name固定不变(续跑的前提)
  • max_trials按预算设置,默认 100 通常偏大
  • 明确objective,与业务指标对齐
  • directory指向有足够磁盘的空间
  • 非交互环境下用verbose=2(逐行日志,适合重定向到文件)
  • 搜索结束后记得用best_pipeline做数据变换再预测

更多可运行示例可参考 examples/ 目录(如 examples/cifar10.py、examples/imdb.py),批量评估基准见 benchmark/performance.py。

【免费下载链接】autokerasAutoML library for deep learning项目地址: https://gitcode.com/gh_mirrors/au/autokeras

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询