系统信息
- 是否编写了自定义代码(与使用TensorFlow提供的库存示例脚本相反):是
- OS平台和发行版:Ubuntu 18.04.5 LTS
- 从哪里安装的TensorFlow:二进制文件
- TensorFlow版本:2.3.2
- Python版本:3.8.5
- CUDA/cuDNN版本:11.1.74 / 8.0.5
- GPU型号和内存:Nvidia Tesla V100-SXM2-32GB
描述当前行为
要加载使用tf.saved_model.save()
保存的tf.Module
,tf.saved_model.load()
比tf.compat.v1.saved_model.loader.load()
慢得多(在附加的colab中慢4倍)
描述预期行为
应该大致相同。
独立代码重现问题
https://colab.research.google.com/drive/1baHS4efEYUP_BCvP8OzStMe9zv92vQhs?usp=sharing
其他信息/日志 包括任何有助于解决问题的日志或源代码
我们有严格的延迟要求,需要使用tf.compat.v1.saved_model.loader.load()
,从图中提取操作和Tensor以使用session.run()
来满足它们。
在TF2.5.0中也观察到了同样的情况。
5条答案
按热度按时间pxyaymoc1#
@jvishnuvardhan ,
我能够在tf v2.4、v2.5和nightly中重现这个问题。请在这里找到摘要。
gfttwv5a2#
tf.saved_model.save()
已被弃用,建议用户从Tensorflow 2.5开始使用model.save()
方法保存模型。请参考以下警告信息并进行必要的更改。您正在保存的对象包含一个或多个Keras模型或层。如果您使用
tf.keras.models.load_model
加载SavedModel,请继续阅读(否则,您可以忽略以下说明)。请将代码更改为使用tf.keras.models.save_model
或model.save
保存,并确认导出目录中存在文件"keras.metadata"。将来,Keras只会加载具有此文件的SavedModels。换句话说,tf.saved_model.save
将不再写入可以恢复为Keras模型的SavedModels(这将在TF 2.5中生效)。k5hmc34c3#
对不起,我不能同意你的观点。
tf.saved_model.save()
绝对没有被弃用。即使在 TF2.9 中,它也没有被弃用:https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/saved_model/save
而且,在指南中也有详细的描述(至少到今天为止):https://www.tensorflow.org/guide/saved_model#saving_a_custom_model
k4aesqcs4#
抱歉,造成混淆。你能尝试将 $x_1^m_0^n_1^x$ 替换为 $x_1^m_1^n_1^x$ 吗?因为这是从 Tensorflow 2.5 版本建议的方法,如果你发现有任何令人满意的改进,请告诉我们。谢谢!
以下是示例警告:
$x_1^m_2^n_1^x$
b4lqfgs45#
如描述中提到的,我们没有保存一个Keras模型,而是保存了一个
tf.Module
。并且tf.Module
没有save()
方法。这个问题在一年前就已经提出,但没有得到令人满意的答复。我们最近加入了一家使用PyTorch的公司,所以你可以关闭这个问题。