内容简介: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 也发推介绍了该工具。
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 数据集上进行模型调参:
<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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- dba+工具:MongoDB热备份工具,解决官方版备份缺陷
- 重磅!GitHub 官方开源新命令行工具
- Pipenv – 官方推荐的 Python 包管理工具
- 非泄露,NSA 官方开源反汇编工具 GHIDRA
- Golang官方依赖管理工具dep学习使用笔记
- TensorFlow官方发布剪枝优化工具:参数减少80%,精度几乎不变
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。