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?
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.
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.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With