TensorFlow中tf.keras.experimental的export_saved_model属性位置及报错解决
解决
tf.keras.experimental.export_saved_model不存在的问题 这个报错其实是TensorFlow版本迭代导致的API位置变更——export_saved_model早就不在tf.keras.experimental模块里啦。从TensorFlow 2.x开始,这类模型导出/加载的功能已经从实验性模块迁移到了标准API中,下面是具体的解决办法:
正确的模型导出与加载方式
1. 导出模型
直接用模型实例的save()方法,或者tf.keras.models.save_model()函数即可,两者默认都会导出为SavedModel格式,完全替代原来的实验性方法:
SHOE_SAVED_MODEL = "saved_models/shoe" # 方式一:调用模型自身的save方法(更简洁) model.save(SHOE_SAVED_MODEL) # 方式二:使用tf.keras.models下的save_model函数 # tf.keras.models.save_model(model, SHOE_SAVED_MODEL)
2. 加载模型
对应使用tf.keras.models.load_model()函数,同时传入你的自定义对象KerasLayer:
shoe_model = tf.keras.models.load_model(SHOE_SAVED_MODEL, custom_objects={'KerasLayer': hub.KerasLayer})
补充说明
- 如果你还在使用TensorFlow 1.x版本,
tf.keras.experimental.export_saved_model确实存在,但1.x已经停止维护,建议升级到2.x版本使用更稳定的标准API。 model.save()还支持通过指定save_format="h5"导出为HDF5格式,可根据自己的需求选择。
内容的提问来源于stack exchange,提问作者Soudip Karmakar
相关产品推荐
相关产品推荐

