【问题标题】:TF2.0 create a single pb file without additional folders or files?TF2.0创建单个pb文件没有额外的文件夹或文件?
【发布时间】:2019-12-09 14:31:22
【问题描述】:

我搜索并阅读了几篇文章,但找不到任何提示来创建没有变量、资产文件夹的单个 pb 文件。

我的tensorflow版本是2.0.0

https://www.tensorflow.org/guide/saved_model

从这个文档中,我可以从检查点创建一个 pb 文件。 我在我的文件夹中找到了一个具有这种结构的 pb 文件。

  • pb_file_parent_dir/assets

  • pb_file_parent_dir/saved_model.pb

  • pb_file_parent_dir/variables/

我想创建一个单独的 pb 文件(saved_model.pb),但我有 2 个额外的文件夹(资产和变量)。

如果有办法创建单个 pb 文件,请帮帮我。我想创建一个用于部署目的的 pb 文件。

已编辑

我尝试使用 'tf.keras.models.save_model' 和 https://www.tensorflow.org/api_docs/python/tf/keras/Model#save。我得到了与上面相同的结果,而不是单个 pb 文件。

谢谢你,祝你有美好的一天。

【问题讨论】:

    标签: tensorflow tensorflow2.0


    【解决方案1】:

    TensorFlow 2.0 不再使用这种“冻结”的单个文件 .pb 来存储模型,而是使用 SavedModel 格式 https://www.tensorflow.org/guide/saved_model(您已经拥有 .pb 和 variables/assets 文件夹),或者您也可以使用 Keras .h5 格式https://www.tensorflow.org/tutorials/keras/save_and_load#hdf5_format

    您仍然可以使用兼容模块https://www.tensorflow.org/api_docs/python/tf/compat/v1/graph_util/convert_variables_to_constants 在 tf2.0 中创建冻结的 .pb 文件,但您必须使用所有兼容的东西,例如会话(这不是 TensorFlow 2.0 的处理方式,并且与keras api 我相信)。

    【讨论】:

    • 感谢您的回答,我想创建一个用于部署的 pb 文件(我编辑了问题)。是否可以将“变量”文件夹和 pb 文件集成到单个 pb 文件中?我尝试使用“tf.trian.latest_checkpoint”函数来读取检查点,它似乎有效。之后使用“tf.compat.v1.graph_util.convert_variables_to_constants”函数,它没有读取图中的任何节点。也许,我应该尝试使用 version1 方法来读取检查点,然后使用“tf.compat.v1.graph_util.convert_variables_to_constants”函数。
    • 我尝试创建一个 pb 文件(saved_model.pb、变量文件夹和断言文件夹)。然后,我尝试使用 tensorflow 1.14 版本进行加载,但失败了..我仍然没有想出如何做到这一点..
    • 您应该仍然能够使用保存的模型格式进行部署。 tensorflow.org/guide/saved_model
    • 我发现了一个重复的问题,我认为值得一试。 stackoverflow.com/questions/58119155/…
    猜你喜欢
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 2015-12-12
    相关资源
    最近更新 更多