今天就跟大家聊聊有關(guān)如何進行Keras中的神經(jīng)網(wǎng)絡(luò)模型超參數(shù)調(diào)優(yōu),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
為海州等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及海州網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計、成都網(wǎng)站制作、海州網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
在目前神經(jīng)網(wǎng)絡(luò)超參數(shù)調(diào)整的研究中,tensorflow/keras社區(qū)開發(fā)出了一款自動化調(diào)參工具 keras-tuner,通過keras-tuner我們在使tensorflow/keras 進行工程實踐時,在模型參數(shù)優(yōu)化這一環(huán)節(jié)可以方便的幫助我們做一些工作。
首先我們安裝keras-tuner
要求:
Python 3.6
TensorFlow 2.0
從pypi安裝
pip install -U keras-tuner
使用很簡單,上來先import
import kerastuner as kt
首先先來介紹一下keras-tuner的參數(shù)類 HyperParameters,非常重要。
hp = kt.HyperParameters()
HyperParameters類作為一個hyerparameter容器。一個HyperParameters實例包含有關(guān)搜索空間和每個超參數(shù)的當前值的信息。當然也可以與使用超參數(shù)的模型構(gòu)建代碼內(nèi)聯(lián)定義超參數(shù)。這使您不必編寫樣板代碼,并有助于使代碼更具可維護性。
我們來看一個非常簡單的例子
import kerastuner as kt
import tensorflow as tf
#初始化一個參數(shù)容器
hp = kt.HyperParameters()
#定義一個model
def build_model(hp):
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(units=hp.Int('units', min_value=32, max_value=512, step=32), activation='relu'))
model.add(layers.Dense(10, activation='softmax'))
model.compile(optimizer=tf.keras.optimizers.Adam(hp.Choice('learning_rate', values=[1e-2, 1e-3, 1e-4])),
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
return model
#包裝一個隨即搜索器
tuner = kt.tuners.RandomSearch(
build_model,
objective='val_accuracy',
max_trials=5,
executions_per_trial=3,
directory='my_dir',
project_name='helloworld')
#打印搜索空間的摘要
tuner.search_space_summary()
#搜索最佳的超參數(shù)配置
tuner.search(x, y, epochs=5, validation_data=(val_x, val_y)
#檢索最佳模型
models = tuner.get_best_models(num_models=2)
#打印結(jié)果摘要
tuner.results_summary()
可以看出,kerastuner就是這么好用,簡潔的api方法定義隨機參數(shù)和訓練模型。
看完上述內(nèi)容,你們對如何進行Keras中的神經(jīng)網(wǎng)絡(luò)模型超參數(shù)調(diào)優(yōu)有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。