Keras官方出调参工具了,然而Francois说先别急着用

栏目: 编程工具 · 发布时间: 6年前

内容简介:Keras Tuner GitHub 地址:https://github.com/keras-team/keras-tuner早在上个月举办的谷歌 I/O 大会上,谷歌即展示了 Keras Tuner 的功能。Keras 作者 François Chollet 也发推介绍了该工具。

Keras Tuner GitHub 地址:https://github.com/keras-team/keras-tuner

早在上个月举办的谷歌 I/O 大会上,谷歌即展示了 Keras Tuner 的功能。Keras 作者 François Chollet 也发推介绍了该工具。

Keras官方出调参 <a href='https://www.codercto.com/tool.html'>工具</a> 了,然而Francois说先别急着用

What is Keras Tuner?

据介绍,Keras Tuner 是专为 AI 从业者、hypertuner 算法创建者和模型设计人员开发的一款简单高效调参框架。它提供干净简单的 API,用户只需改变几行代码即可完成模型调参工作。

除了简单直观的 API 之外,Keras Tuner 还提供 SOTA hypertuner 算法、可调整的架构,以及无缝实验记录功能。

Keras官方出调参工具了,然而Francois说先别急着用

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

Keras官方出调参工具了,然而Francois说先别急着用

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

Keras官方出调参工具了,然而Francois说先别急着用

Keras官方出调参工具了,然而Francois说先别急着用

此外,Keras Tuner 还提供 Online dashboard,用户可以实时在线观察模型训练状况。

Keras Tuner 使用示例

目前,Keras Tuner GitHub 项目中也给出了两个示例。

1. 使用 Keras Tuner 目前的 API 在 MNIST 数据集上进行模型调参:

<code>from tensorflow import keras</code><code>from tensorflow.keras import layers</code><code>import numpy as np</code><code>from kerastuner.tuners import GridSearch</code><code>from kerastuner.distributions import Range, Choice</code><code>(x, y), (val_x, val_y) = keras.datasets.mnist.load_data()</code><code>x = x.astype('float32') / 255.</code><code>val_x = val_x.astype('float32') / 255.</code><code>"""Basic case:</code><code>- We define a `build_model` function</code><code>- It returns a compiled model</code><code>- It uses hyperparameters defined on the fly</code><code>"""</code><code>def build_model():</code><code> model = keras.Sequential()</code><code> model.add(layers.Flatten(input_shape=(28, 28)))</code><code> for i in range(Range('num_layers', 2, 20)):</code><code> model.add(layers.Dense(units=Range('units_' + str(i), 32, 512, 32),</code><code> activation='relu'))</code><code> model.add(layers.Dense(10, activation='softmax'))</code><code> model.compile(</code><code> optimizer=keras.optimizers.Adam(</code><code> Choice('learning_rate', [1e-2, 1e-3, 1e-4])),</code><code> loss='sparse_categorical_crossentropy',</code><code> metrics=['accuracy'])</code><code> return model</code><code>tuner = GridSearch(</code><code> build_model,</code><code> objective='val_accuracy',</code><code> num_executions=2)</code><code>tuner.search(x=x,</code><code> y=y,</code><code> validation_data=(val_x, val_y))</code>

2. 使用 Keras Tuner 未来 API 在 MNIST 数据集上进行模型调参:

<code>from tensorflow import keras</code><code>from tensorflow.keras import layers</code><code>import numpy as np</code><code>from kerastuner.tuner import SequentialRandomSearch</code><code>(x, y), (val_x, val_y) = keras.datasets.mnist.load_data()</code><code>x = x.astype('float32') / 255.val_x = val_x.astype('float32') / 255.</code><code>"""Basic case:</code><code>- We define a `build_model` function</code><code>-It returns a compiled model</code><code>-It uses hyperparameters defined on the fly</code><code>"""</code><code>def build_model(hp):</code><code> model = keras.Sequential()</code><code> model.add(layers.Flatten(input_shape=(28, 28)))</code><code> for i in range(hp.Range('num_layers', 2, 20)):</code><code> model.add(layers.Dense(units=hp.Range('units_' + str(i), 32, 512, 32),</code><code> activation='relu'))</code><code> model.add(layers.Dense(10, activation='softmax'))</code><code> model.compile(</code><code> optimizer=keras.optimizers.Adam(</code><code> hp.Choice('learning_rate', [1e-2, 1e-3, 1e-4])), </code><code> loss='sparse_categorical_crossentropy', </code><code> metrics=['accuracy'])</code><code> return model</code><code>tuner = SequentialRandomSearch(</code><code> build_model, </code><code> objective='val_accuracy')</code><code>tuner.search(trials=2, </code><code> x=x, </code><code> y=y, </code><code> epochs=5, </code><code> validation_data=(val_x, val_y))</code>

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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

触动人心

触动人心

Josh Clark / 包季真 / 电子工业出版社 / 2011-10 / 79.00元

本书是《Tapworthy: Designing Great iPhone Apps》的中文翻译版。 可能你设计网站产品或软件界面早已得心应手,可是遇到了iPhone,却感觉无从下手。 无论你是产品经理、设计师、创业者还是程序员,本书都能告诉你如何从iPhone的角度来思考应用设计。本书能帮助你理解如何设计iPhone应用,要创建一款触动人心的应用,需要如何去综合思考设计、心理、文化、......一起来看看 《触动人心》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

MD5 加密
MD5 加密

MD5 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具