.pb SavedModel 和 .tf SavedModel 之间有什么区别?

Sai*_*das 5 tensorflow tensorflow2.0

For.pb SavedModel : model.save("my_model") 默认保存为.pb

对于 .tf SavedModel : model.save("my_model",save_format='.tf')

我想知道这两种格式之间的区别。它们都是 SavedModel 吗?他们都是一样的吗?哪个更好?两者都是 TensorFlow 扩展?

jde*_*esa 3

请参阅 的文档tf.keras.Model.savesave_format可以有两个值之一:

  • tf(TensorFlow 2.x 中的默认值)表示 TensorFlow 格式,SavedModel协议缓冲区文件。
  • h5(TensorFlow 1.x 中的默认值)表示 HDF5 Keras 格式,该格式是在 Keras 完全独立于 TensorFlow 时定义的,旨在支持多个后端而不与任何特定的人绑定。

在 TensorFlow 2.x 中,您不应该需要h5,除非您想生成与旧版本或类似文件兼容的文件。SavedModel 也更加集成到 TensorFlow 生态系统中,例如,如果您想将其与 TensorFlow Serving 一起使用。

  • @Krishnadas “.pb” 文件扩展名,通常用于任何序列化协议缓冲区,在本例中用于 TensorFlow “SavedModel” 格式。没有“.tf”文件扩展名(也就是说,您可以为文件使用任何您想要的扩展名,但这不是常规使用的扩展名)。当您使用“save_format='tf'”时,您将获得一个“.pb”文件,其中包含 TensorFlow 格式的模型。如果您使用“save_format='h5'”,您将获得一个“.h5”文件,其中包含 Keras 格式的模型。 (2认同)