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

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

内容简介: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


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

查看所有标签

猜你喜欢:

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

Effective java 中文版(第2版)

Effective java 中文版(第2版)

Joshua Bloch / 俞黎敏 / 机械工业出版社 / 2009-1-1 / 52.00元

本书介绍了在Java编程中78条极具实用价值的经验规则,这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。通过对Java平台设计专家所使用的技术的全面描述,揭示了应该做什么,不应该做什么才能产生清晰、健壮和高效的代码。 本书中的每条规则都以简短、独立的小文章形式出现,并通过例子代码加以进一步说明。本书内容全面,结构清晰,讲解详细。可作为技术人员的参考用书。一起来看看 《Effective java 中文版(第2版)》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具