1. 程式人生 > 其它 >使用keras為什麼accuracy一直為0_Keras乾貨|神經網路模型超引數調優

使用keras為什麼accuracy一直為0_Keras乾貨|神經網路模型超引數調優

技術標籤:使用keras為什麼accuracy一直為0

98bd10819e574127b5ac236bd45b473c.gif

在目前神經網路超引數調整的研究中,tensorflow/keras社群開發出了一款自動化調參工具 keras-tuner,通過keras-tuner我們在使tensorflow/keras 進行工程實踐時,在模型引數優化這一環節可以方便的幫助我們做一些工作。

首先我們安裝keras-tuner

要求:

  • Python 3.6

  • TensorFlow 2.0

從pypi安裝

pip install -U keras-tuner

使用很簡單,上來先import

import kerastuner as kt

首先先來介紹一下keras-tuner的引數類 HyperParameters,非常重要。

hp = kt.HyperParameters()

HyperParameters類作為一個hyerparameter容器。一個HyperParameters例項包含有關搜尋空間和每個超引數的當前值的資訊。當然也可以與使用超引數的模型構建程式碼內聯定義超引數。這使您不必編寫樣板程式碼,並有助於使程式碼更具可維護性。

我們來看一個非常簡單的例子

import kerastuner as ktimport tensorflow as tf#初始化一個引數容器hp = kt.HyperParameters()#定義一個modeldef 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()#搜尋最佳的超引數配置tuner.search(x, y, epochs=5, validation_data=(val_x, val_y)#檢索最佳模型models = tuner.get_best_models(num_models=2)#列印結果摘要tuner.results_summary()

可以看出,kerastuner就是這麼好用,簡潔的api方法定義隨機引數和訓練模型。