當前位置:
首頁 > 新聞 > Keras官方出調參工具了,然而Francois說先別急著用

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 也發推介紹了該工具。

Keras官方出調參工具了,然而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 數據集上進行模型調參:

from tensorflow import kerasfrom tensorflow.keras import layers
import numpy as np
from 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 model
tuner = 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 model
tuner = 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

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

ICLR 2019論文解讀:量化神經網路
如何光明正大地學習KISS?當然是用這個DL接吻檢測器了

TAG:機器之心 |