It would seem that the current keras version expects an earlier h5py version for loading
models. Specifically, running:
from tensorflow.keras.models import load_model
model = load_model("model.h5")
File "/gnu/store/idfn4l2kxil9id21v1yci4jcw6103fah-profile/lib/python3.9/site-packages/tensorflow/python/keras/engine/saving.py", line 228, in load_model
model_config = json.loads(model_config.decode('utf-8'))
AttributeError: 'str' object has no attribute 'decode'
The above works fine in my local pip environment (see below). A quick search online indicates that this can be fixed by downgrading h5py to version 2.10. The current h5py version in guix is 3.6.
My assumption is that this could also be fixed with an upgrade to keras, but upgrading keras sounds much more involved. For a short-term fix, would it be possible to add back a package definition for an earlier h5py in addition to the current version? I'm
sure an appropriate version exists somewhere in guix's git history, though my git-foo is too weak for me to check.
working (pip): keras 2.10.0, h5py 3.7.0
not working (current guix): keras 2.2.4, h5py 3.6.0