Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

dump weights of cnn in json using keras

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.

like image 352
ssg Avatar asked May 15 '17 04:05

ssg


Video Answer


1 Answers

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())
like image 144
BernardoGO Avatar answered Sep 30 '22 14:09

BernardoGO