使用keras為什麼accuracy一直為0_Keras乾貨|神經網路模型超引數調優
阿新 • • 發佈:2020-12-17
在目前神經網路超引數調整的研究中,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方法定義隨機引數和訓練模型。