保存和检索模型名称
Posted
技术标签:
【中文标题】保存和检索模型名称【英文标题】:Saving and retrieving model name 【发布时间】:2018-10-17 11:36:13 【问题描述】:我正在使用 Keras 来训练我的模型,这就是我指定其名称的方式:
model = Sequential()
model.name = 'NameOfMyModel'
[...]
然后我将它保存到磁盘如下:
model_json = model.to_json()
with open(pathToModel+".json","w") as json_file:
json_file.write(model_json)
model.save_weights(pathToModel+'.h5')
稍后,我使用以下代码再次加载它:
json_file = open(path+'.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
loaded_model.load_weights(path+".h5")
我想通过执行以下操作再次从加载的模型中检索模型的名称:
modelName = loaded_model.name
但是,返回的不是字符串'NameOfMyModel'
,而是字符串'sequential_1'
。我在这里错过了什么?
【问题讨论】:
我无法重现您的问题。它在加载模型后显示'NameOfMyModel'
。
哼……奇怪。你用的是什么 Keras 版本?
我的 Keras 版本是 2.2.4。
当然,我也在将模型保存到磁盘之前进行了训练,这从上面的代码中并不明显。也许是训练模型引入的问题?
没有。即使我训练它,它也会显示正确的名称。
【参考方案1】:
显然,通过升级 Keras(从版本 2.2.0 到 2.2.4),问题得到了解决。
【讨论】:
以上是关于保存和检索模型名称的主要内容,如果未能解决你的问题,请参考以下文章
Keras - LeakyReLU 保存模型时没有属性名称错误