TensorFlow≥2.12.0下Keras模型保存是否丧失向后兼容性?
Keras v2.12.0模型保存兼容性问题
我在使用Keras v2.12.0版本保存模型时遇到问题,似乎该版本存在向后兼容问题。想确认是我的理解有误,还是必须重构代码才能迁移到v2.12.0?
我们在v2.7.0版本的旧保存方式为:传入有效的.h5文件路径给Keras,即可在磁盘生成对应名称的.h5文件,代码如下:
model = tf.keras.models.Sequential(...) model.compile(...) model.save('my_model.h5')
但这段代码在v2.12.0中运行报错:
tensorflow.python.framework.errors_impl.FailedPreconditionError: /tmp/tmpt118zg26 is not a directory
我了解v2.12.0提供两种保存选项:
- 文件夹形式保存:通过
tf.saved_model.save()实现 - 文件形式保存:由
tf.keras.saving.save_model()支持,且model.save()是该方法的别名
v2.12.0的发布说明中提到:
将所有保存相关工具迁移至新命名空间
keras.saving,例如
原API位置(keras.utils和keras.models)将永久可用,但建议更新代码指向新API位置。
那么为何上述代码突然报错?我有以下疑问:
- 是否仍可使用原有方式直接保存.h5文件?若可以,如何操作?这难道不应该向后兼容吗?是否必须重写代码(若要保留文件保存方式,是否只需改为调用
tf.keras.saving.save_model()?) - 或者必须改为保存到文件夹?那么迁移路径是什么?所有模型放在同一文件夹会互相覆盖吗?是否需要嵌套文件夹,同时调整模型同步方式(例如改用
aws s3 sync 'folder'替代boto3的client.upload_file()上传到AWS?)
内容的提问来源于stack exchange,提问作者KingOtto
相关产品推荐
相关产品推荐

