Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get training hyperparameters from a trained keras model

Tags:

python

hdf5

keras

I am trying to figure out some of the hyperparamters used for training some old keras models I have. They were saved as .h5 files. When using model.summary(), I get the model architecture, but no additional metadata about the model.

When I open this .h5 file in notepad++, most of the file is not human readable, but there are bits that I can understand, for instance;

{"loss_weights": null, "metrics": ["accuracy"], "sample_weight_mode": null, "optimizer_config": {"config": {"decay": 0.0, "momentum": 0.8999999761581421, "nesterov": false, "lr": 9.999999747378752e-05}, "class_name": "SGD"}, "loss": "binary_crossentropy"}

which is not present in the output printed by model.summary().

Is there a way to make these files human readable or to get a more expanded summary that includes version information and training parameters?

like image 962
Mark Avatar asked Dec 31 '18 15:12

Mark


3 Answers

I think what you want is the model configuration, you can get these with:

model.get_config()

It returns a "human readable" JSON string that describes the configuration of the model. You can use this to reconstruct the model and train it again, or to make changes.

like image 197
Dr. Snoopy Avatar answered Sep 16 '22 16:09

Dr. Snoopy


If you want to know the hyperparams of the layers (no of layers, no of neurons in each layer, and activation function used in each layer), you can do:

model.get_config()

To find out loss function used in training, do:

model.loss

Additionally, if you want to know the Optimizer used in the training, do:

model.optimizer

And finally, in order to find out the learning rate used while training, do:

from keras import backend as K
K.eval(m.optimizer.lr)

PS: Examples provided above use keras v2.3.1.

like image 42
Usman Ahmad Avatar answered Sep 18 '22 16:09

Usman Ahmad


Configuration - model.get_config()

Optimizer config - model.optimizer.get_config()

Training Config model.history.params (this will be empty, if model is saved and reloaded)

Loss Fuction - model.loss

like image 40
frier Avatar answered Sep 19 '22 16:09

frier