Keras官方出调参工具了,然而Francois说先别急着用
机器之心报道
参与:路
近日,Keras 官方发布了一个调参工具 Keras Tuner,提供一种 Keras 内的简单便捷调参方式,以及可视化和分析服务。然而目前发布的版本还不成熟,Keras 作者 Fran?ois Chollet 表示:大家先别用,API 还不稳定。
Keras Tuner GitHub 地址:https://github.com/keras-team/keras-tuner
早在上个月举办的谷歌 I/O 大会上,谷歌即展示了 Keras Tuner 的功能。Keras 作者 Fran?ois Chollet 也发推介绍了该工具。

What is Keras Tuner?
据介绍,Keras Tuner 是专为 AI 从业者、hypertuner 算法创建者和模型设计人员开发的一款简单高效调参框架。它提供干净简单的 API,用户只需改变几行代码即可完成模型调参工作。
除了简单直观的 API 之外,Keras Tuner 还提供 SOTA hypertuner 算法、可调整的架构,以及无缝实验记录功能。

此外,它还可用于?TensorBoard、Colab、BigQuery、Command line 等。

谷歌 Elie Bursztein 在 I/O 大会上还展示了 Keras Tuner 使用示例:Keras Tuner 通过改变少量代码即可将分类器 ResNet101v2 进行调参,生成的模型相比原模型准确率提高了 20%,参数量减少了 45%!


此外,Keras Tuner 还提供 Online dashboard,用户可以实时在线观察模型训练状况。
Keras Tuner 使用示例
目前,Keras Tuner GitHub 项目中也给出了两个示例。
1. 使用 Keras Tuner 目前的 API 在 MNIST 数据集上进行模型调参:
from tensorflow import kerasfrom tensorflow.keras import layersimport numpy as npfrom kerastuner.tuners import GridSearchfrom kerastuner.distributions import Range, Choice(x, y), (val_x, val_y) = keras.datasets.mnist.load_data()x = x.astype('float32') / 255.val_x = val_x.astype('float32') / 255."""Basic case:- We define a `build_model` function- It returns a compiled model- It uses hyperparameters defined on the fly"""def build_model():model = keras.Sequential()model.add(layers.Flatten(input_shape=(28, 28)))for i in range(Range('num_layers', 2, 20)):model.add(layers.Dense(units=Range('units_' + str(i), 32, 512, 32),activation='relu'))model.add(layers.Dense(10, activation='softmax'))model.compile(optimizer=keras.optimizers.Adam(Choice('learning_rate', [1e-2, 1e-3, 1e-4])),loss='sparse_categorical_crossentropy',metrics=['accuracy'])return modeltuner = GridSearch(build_model,objective='val_accuracy',num_executions=2)tuner.search(x=x,y=y,validation_data=(val_x, val_y))
2. 使用 Keras Tuner 未来 API 在 MNIST 数据集上进行模型调参:
from tensorflow import kerasfrom tensorflow.keras import layersimport numpy as npfrom kerastuner.tuner import SequentialRandomSearch(x, y), (val_x, val_y) = keras.datasets.mnist.load_data()x = x.astype('float32') / 255.val_x = val_x.astype('float32') / 255."""Basic case:- We define a `build_model` function-It returns a compiled model-It uses hyperparameters defined on the fly"""def build_model(hp):model = keras.Sequential()model.add(layers.Flatten(input_shape=(28, 28)))for i in range(hp.Range('num_layers', 2, 20)):model.add(layers.Dense(units=hp.Range('units_' + str(i), 32, 512, 32),activation='relu'))model.add(layers.Dense(10, activation='softmax'))model.compile(optimizer=keras.optimizers.Adam(hp.Choice('learning_rate', [1e-2, 1e-3, 1e-4])),loss='sparse_categorical_crossentropy',metrics=['accuracy'])return modeltuner = SequentialRandomSearch(build_model,objective='val_accuracy')tuner.search(trials=2,x=x,y=y,epochs=5,?validation_data=(val_x,?val_y))
Keras 作者 Fran?ois Chollet 有话说
这两天,有 reddit 网友发帖介绍了这个强大的工具,引发热议。然而第一热评(来自 Keras 作者 Fran?ois Chollet!)「及时」泼了盆冷水:
目前 Keras Tuner 是 pre-alpha 版,大家先不要使用。它目前仅具备随机搜索和 HyperBand 功能。
接下来,API 将有大量改变。Beta 版的发布至少还要等好几个月,发行后,该工具将允许使用大量不同技术进行分布式调参,同时 Keras Tuner 将集成 Google Cloud tuning API。
同时他表示,欢迎社区积极贡献,Keras 团队将在 Keras Tuner API 更加稳定后,在 GitHub repo 中发布路线图。
参考内容:
https://www.reddit.com/r/MachineLearning/comments/bzs5r9/n_keras_tuner_official_hyperparameter_tuning/
https://elie.net/static/files/cutting-edge-tensorflow-keras-tuner-hypertuning-for-humans/cutting-edge-tensorflow-keras-tuner-hypertuning-for-humans-slides.pdf
本文为机器之心报道,转载请联系本公众号获得授权。
?------------------------------------------------
加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com
投稿或寻求报道:content@jiqizhixin.com
广告 & 商务合作:bd@jiqizhixin.com
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
- 1 习近平将发表二〇二六年新年贺词 7904141
- 2 2026年国补政策来了 7808738
- 3 东部战区:开火!开火!全部命中! 7712893
- 4 2026年这些民生政策将惠及百姓 7616985
- 5 小学食堂米线过期2.5小时被罚5万 7519709
- 6 解放军喊话驱离台军 原声曝光 7428214
- 7 为博流量直播踩烈士陵墓?绝不姑息 7327605
- 8 每月最高800元!多地发放养老消费券 7238391
- 9 数字人民币升级 1月1日起将计付利息 7141831
- 10 2026年1月1日起 一批新规将施行 7040675








机器之心
