Can someone help me with running this assignment locally. I am getting some strange error.
from tensorflow.keras.models import model_from_json
json_file = open(‘keras-facenet-h5/model.json’, ‘r’)
loaded_model_json = json_file.read()
json_file.close()
model = model_from_json(loaded_model_json)
model.load_weights(‘keras-facenet-h5/model.h5’)
In the 3rd line of this 6 line code snippet, I am getting an error
ValueError: bad marshal data (unknown type code)
I searched for this on the web. The only thing I was able to understand that this is generally due to a mismatch in versions.
I followed this link, and they seem to be thinking that this is basically due to the Python version. They think that running the pre-trained facenet model requires python 2.7.x, but I checked on Coursera notebook itself, and I found it to be running on python 3.7.x. Any idea or suggestion would be appreciated.
In case you did not yet see this yet, here is another github repo with some pointers. From what I can see it is an issue with versioning of python, keras, and tensorflow.
@Kennychuen I found the solution to it, but it was pretty elaborative. It included setting up a local environment with the exact package versions. So, I replicated my notebook in the Coursera environment only.
Does that mean it is not user-friendly since we dont really use specific old versions to nowadays. Did you manage to find any new and fast ways of loading the files instead?
@Kennychuen Unfortunately, that’s the bad part about pre-trained models. If you need to load the weights, then you need to use the same package versions, unless, the package hasn’t made any major changes.
As of now, I haven’t found a better way to load the models.
@Kennychuen I don’t remember the differences actually. I guess you can find it on the repository, from where these model files are taken, for which you need to search on the web, cause as I said, I used the Coursera environment only.