使用keras在json中转储cnn的权重

ssg*_*ssg 5 json conv-neural-network keras tensorflow

我想在其他框架中使用转储的权重和模型架构进行测试.

我知道:

  • model.get_config() 可以给出模型的配置
  • model.to_json 返回模型的表示形式作为JSON字符串,但表示不包括权重,仅包括体系结构
  • model.save_weights(filepath) 将模型的权重保存为HDF5文件

我想在json文件中保存体系结构和权重.

Ber*_*oGO 7

Keras没有任何内置方法可以将权重导出到JSON.

解决方案1:

现在,您可以通过迭代权重并将其保存到JSON文件来轻松完成.

weights_list = model.get_weights()
Run Code Online (Sandbox Code Playgroud)

将返回模型中所有权重张量的列表,如Numpy数组.

然后,接下来要做的就是迭代这个列表并写入文件:

for i, weights in enumerate(weights_list):
    writeJSON(weights)
Run Code Online (Sandbox Code Playgroud)

解决方案2:

import json
weights_list = model.get_weights()
print json.dumps(weights_list.tolist())
Run Code Online (Sandbox Code Playgroud)

  • 我不得不执行 `json.dumps(numpy.array(weights_list).tolist())` 因为 `'list' object has no attribute 'tolist'` 错误。 (3认同)