是否存在将TensorFlow 2.6.0保存的模型适配到TensorFlow 2.3.0加载的方法?
TensorFlow 2.6降级至2.3模型加载报错解决方案
报错1:model_from_json加载时报AttributeError: module 'tensorflow.python.framework.ops' has no attribute '_TensorLike'
- 根因:TensorFlow 2.3版本未内置
_TensorLike类标识,无法兼容2.6版本导出的模型JSON配置 - 解决方案:在2.3环境执行加载代码前,手动添加兼容别名:
别名添加完成后再调用import tensorflow.python.framework.ops tensorflow.python.framework.ops._TensorLike = tensorflow.python.framework.ops.Tensormodel_from_json即可正常加载模型。
报错2:SavedModel格式加载时报OSError: Unable to open file Permission denied
- 根因:非接口逻辑问题,为本地文件夹权限不足导致,和Keras是否预期读取单文件无关
- 解决方案:
- Linux环境:执行命令
chmod -R 755 <你的SavedModel文件夹绝对路径>开放文件夹读写权限 - Windows环境:右键目标文件夹,选择「属性-安全」,给当前运行代码的用户开放「完全控制」权限后重新加载
- Linux环境:执行命令
报错3:HDF5格式/tf.saved_model.load加载时报AttributeError: 'str' object has no attribute 'decode'
- 根因:当前环境h5py版本过高,TensorFlow 2.3仅支持h5py 2.x版本,3.x版本的字符串编码逻辑和旧版本不兼容
- 解决方案:执行命令降级h5py版本即可:
安装完成后重启Python运行环境,重新加载模型即可。pip install h5py==2.10.0
内容的提问来源于stack exchange,提问作者Tommaso Merlin
相关产品推荐
相关产品推荐

