dump weights of cnn in json using keras

2020-06-21 18:24发布

问题:

I want to use the dumped weights and model architecture in other framework for testing.

I know that:

  • model.get_config() can give the configuration of the model
  • model.to_json returns a representation of the model as a JSON string, but that the representation does not include the weights, only the architecture
  • model.save_weights(filepath) saves the weights of the model as a HDF5 file

I want to save the architecture as well as weights in a json file.

回答1:

Keras does not have any built-in way to export the weights to JSON.

Solution 1:

For now you can easily do it by iterating over the weights and saving it to the JSON file.

weights_list = model.get_weights()

will return a list of all weight tensors in the model, as Numpy arrays.

Then, all you have to do next is to iterate over this list and write to the file:

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

Solution 2:

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