Keras: Session graph empty eror when loading weights with tensorflow

Created on 15 Mar 2017  路  3Comments  路  Source: keras-team/keras

I am using keras 1.2 with tensorflow 1.0.0 backend.

I have a function that loads a pre-calibrated model from json and then loads its weights from a hdf5 file.

def load():
    model = model_from_json(open(model_path).read())
    model.load_weights(model_weights_path)

This function, more precisely the call to load_weights results in the following exception:

RuntimeError: The Session graph is empty.  Add operations to the graph before calling run()

I wonder if that is due to these lines that I put in the beginning of my module to set the tensorflow seed for reproducibility:

tf.set_random_seed(123) # To set Tensorflow seed
session_config = tf.ConfigProto(inter_op_parallelism_threads=1,
                                intra_op_parallelism_threads=1)
sess = tf.Session(config=session_config)
keras.backend.set_session(sess)

It seems the keras session does not automatically set the loaded model as the graph associated to the session, hence failing to initialize the weights.

Any explanation and workaround to avoid the exception?

Most helpful comment

@volvador what was your mistake? I am having a similar issue

All 3 comments

This was due to a bug in my own code, apologies for putting the issue, I close it.

@volvador what was your mistake? I am having a similar issue

@volvador I'd also be interested in your solution :)

Was this page helpful?
0 / 5 - 0 ratings