从训练好的 keras 模型中获取训练超参数

Mar*_*ark 5 python hdf5 keras

我试图找出一些用于训练我拥有的旧 keras 模型的超参数。它们被保存为 .h5 文件。使用 时model.summary(),我获得了模型架构,但没有关于模型的额外元数据。

当我在记事本++中打开这个 .h5 文件时,大部分文件不是人类可读的,但有一些我可以理解,例如;

{“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"}

打印的输出中不存在model.summary()

有没有办法使这些文件易于阅读或获得包含版本信息和训练参数的更扩展的摘要?

小智 10

如果你想知道层的超参数(层数、每层神经元数量以及每层使用的激活函数),你可以这样做:

model.get_config()
Run Code Online (Sandbox Code Playgroud)

要找出训练中使用的损失函数,请执行以下操作:

model.loss
Run Code Online (Sandbox Code Playgroud)

此外,如果您想了解训练中使用的优化器,请执行以下操作:

model.optimizer
Run Code Online (Sandbox Code Playgroud)

最后,为了找出训练时使用的学习率,请执行以下操作:

from keras import backend as K
K.eval(m.optimizer.lr)
Run Code Online (Sandbox Code Playgroud)

PS:上面提供的示例使用 keras v2.3.1。


Mat*_*gro 9

我认为您想要的是模型配置,您可以通过以下方式获得:

model.get_config()
Run Code Online (Sandbox Code Playgroud)

它返回一个“人类可读”的 JSON 字符串,描述模型的配置。您可以使用它来重建模型并再次训练它,或者进行更改。