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

时间:2017-05-15 04:35:54

标签: json tensorflow keras conv-neural-network

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

我知道:

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

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

1 个答案:

答案 0 :(得分:7)

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

解决方案1:

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

weights_list = model.get_weights()

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

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

for i, weights in enumerate(weights_list):
    writeJSON(weights)

解决方案2:

import json
weights_list = model.get_weights()
print json.dumps(weights_list.tolist())